
Entry points
C3/0000:	4C1B00  	JMP $001B      ; Invoke desired field menu
C3/0003:	4C70AC  	JMP $AC70      ; Decode joypads for battle
C3/0006:	4C4FAC  	JMP $AC4F      ; Initialize joypad data
C3/0009:	4CA5AC  	JMP $ACA5      ; Decode joypads for field
C3/000C:	4C3314  	JMP $1433      ; Advance play time
C3/000F:	4C6915  	JMP $1569      ; Load save data on defeat
C3/0012:	4C8BD4  	JMP $D48B      ; Show an ending cinematic
C3/0015:	4CC19E  	JMP $9EC1      ; Optimize member's gear
C3/0018:	4CE4E4  	JMP $E4E4      ; Load map for final land

Invoke requested field menu
C3/001B:	C210    	REP #$10       ; 16-bit X, Y
C3/001D:	E220    	SEP #$20       ; 8-bit A
C3/001F:	A900    	LDA #$00       ; Zero A
C3/0021:	48      	PHA            ; Put on stack
C3/0022:	AB      	PLB            ; Set DB to 0
C3/0023:	A20000  	LDX #$0000     ; Zero X
C3/0026:	DA      	PHX            ; Put on stack
C3/0027:	2B      	PLD            ; Set DP to 0
C3/0028:	A20000  	LDX #$0000     ; ...
C3/002B:	8600    	STX $00        ; Optimzn word: 0
C3/002D:	A97E    	LDA #$7E       ; Bank: 7E
C3/002F:	8D8321  	STA $2183      ; Set WRAM HB
C3/0032:	20C000  	JSR $00C0      ; Reroute NMI/IRQ
C3/0035:	AD0002  	LDA $0200      ; Menu to open
C3/0038:	C902    	CMP #$02       ; Load menu?
C3/003A:	D003    	BNE $003F      ; Branch if not
C3/003C:	202F78  	JSR $782F      ; Reset game data
C3/003F:	20F800  	JSR $00F8      ; Load GFX, colors
C3/0042:	20DD00  	JSR $00DD      ; Handle menu
C3/0045:	224FACC3	JSL $C3AC4F    ; Get joypad config
C3/0049:	A98F    	LDA #$8F       ; BRT: 15 and OFF
C3/004B:	8D0021  	STA $2100      ; Disable screen
C3/004E:	9C0042  	STZ $4200      ; Disable INT, pad
C3/0051:	9C0B42  	STZ $420B      ; Disable DMA...
C3/0054:	9C0C42  	STZ $420C      ; Disable HDMA

Fork: Leaving Load menu
C3/0057:	AD0002  	LDA $0200      ; Menu closed
C3/005A:	C902    	CMP #$02       ; Load menu?
C3/005C:	D011    	BNE $006F      ; Branch if not
C3/005E:	AD0502  	LDA $0205      ; Start new game?
C3/0061:	100C    	BPL $006F      ; Branch if so
C3/0063:	AD4E1D  	LDA $1D4E      ; Game options
C3/0066:	2920    	AND #$20       ; Stereo sound?
C3/0068:	F005    	BEQ $006F      ; Branch if so
C3/006A:	A9FF    	LDA #$FF       ; Mode: Mono
C3/006C:	20463F  	JSR $3F46      ; Adjust volume

Fork: Rename Card
C3/006F:	AD0002  	LDA $0200      ; In main menu?
C3/0072:	D04B    	BNE $00BF      ; Return if not
C3/0074:	AD0502  	LDA $0205      ; Rename request?
C3/0077:	1046    	BPL $00BF      ; Return if not
C3/0079:	C9FE    	CMP #$FE       ; Rename actor?
C3/007B:	D021    	BNE $009E      ; SwdTech if not
C3/007D:	A901    	LDA #$01       ; Actor renaming
C3/007F:	8D0002  	STA $0200      ; Set menu number
C3/0082:	AD0102  	LDA $0201      ; Area permissions
C3/0085:	8D0F02  	STA $020F      ; Preserve them
C3/0088:	AC0602  	LDY $0206      ; Actor's address
C3/008B:	8C0102  	STY $0201      ; Set as target's
C3/008E:	220000C3	JSL $C30000    ; Call naming menu
C3/0092:	AD0F02  	LDA $020F      ; Area permissions
C3/0095:	8D0102  	STA $0201      ; Restore them
C3/0098:	9C0002  	STZ $0200      ; Menu: Main
C3/009B:	4C1B00  	JMP $001B      ; Open main menu

Fork: SwdTech renaming
C3/009E:	A906    	LDA #$06       ; SwdTech renaming
C3/00A0:	8D0002  	STA $0200      ; Set menu number
C3/00A3:	AD0102  	LDA $0201      ; Area permissions
C3/00A6:	8D0F02  	STA $020F      ; Preserve them
C3/00A9:	AD0602  	LDA $0206      ; Chosen SwdTech
C3/00AC:	8D0102  	STA $0201      ; Set as target
C3/00AF:	220000C3	JSL $C30000    ; Call naming menu
C3/00B3:	AD0F02  	LDA $020F      ; Area permissions
C3/00B6:	8D0102  	STA $0201      ; Restore them
C3/00B9:	9C0002  	STZ $0200      ; Menu: Main
C3/00BC:	4C1B00  	JMP $001B      ; Open main menu
C3/00BF:	6B      	RTL

Reroute interrupt vectors
C3/00C0:	A95C    	LDA #$5C       ; JML opcode
C3/00C2:	8D0015  	STA $1500      ; Put by NMI loc
C3/00C5:	8D0415  	STA $1504      ; Put by IRQ loc
C3/00C8:	A2F213  	LDX #$13F2     ; C3/13F2
C3/00CB:	8E0115  	STX $1501      ; Set NMI LBs
C3/00CE:	A23214  	LDX #$1432     ; C3/1432
C3/00D1:	8E0515  	STX $1505      ; Set IRQ LBs
C3/00D4:	A9C3    	LDA #$C3       ; Bank: C3
C3/00D6:	8D0315  	STA $1503      ; Set NMI HB
C3/00D9:	8D0715  	STA $1507      ; Set IRQ HB
C3/00DC:	60      	RTS

Access requested field menu
C3/00DD:	7B      	TDC            ; Clear A
C3/00DE:	AD0002  	LDA $0200      ; Menu to open
C3/00E1:	0A      	ASL A          ; Double it
C3/00E2:	AA      	TAX            ; Index it
C3/00E3:	7CE600  	JMP ($00E6,X)  ; Invoke menu

Jump table for the above
C3/00E6:	1A01    	; Main menu
C3/00E8:	B301    	; Actor naming
C3/00EA:	6F01    	; Load menu
C3/00EC:	2101    	; Shop
C3/00EE:	2B01    	; Lineup
C3/00F0:	3D01    	; Bogus...
C3/00F2:	4901    	; SwdTech naming
C3/00F4:	5201    	; Colosseum
C3/00F6:	6601    	; Final battle lineup

Load menu graphics and colors; initialize general variables
C3/00F8:	206C70  	JSR $706C      ; Reset variables
C3/00FB:	208770  	JSR $7087      ; Get party info
C3/00FE:	201B71  	JSR $711B      ; No use...
C3/0101:	2248CDD4	JSL $D4CD48    ; Init registers
C3/0105:	224FACC3	JSL $C3AC4F    ; Init joypad data
C3/0109:	7B      	TDC            ; Gradient set: 0
C3/010A:	221DCAD4	JSL $D4CA1D    ; Create gradient
C3/010E:	207071  	JSR $7170      ; Queue Win1 HDMA
C3/0111:	207F11  	JSR $117F      ; Reset OAM, queue
C3/0114:	201B72  	JSR $721B      ; Load nonskin GFX
C3/0117:	4C5B3B  	JMP $3B5B      ; Load skin visuals

Invoke main menu
C3/011A:	A904    	LDA #$04       ; C3/1AF0
C3/011C:	8526    	STA $26        ; Next: Init menu
C3/011E:	4CBA01  	JMP $01BA      ; Enter menu loop

Invoke shop menu
C3/0121:	20B940  	JSR $40B9      ; Apply user font
C3/0124:	A924    	LDA #$24       ; C3/C3C0
C3/0126:	8526    	STA $26        ; Next: Init menu
C3/0128:	4CBA01  	JMP $01BA      ; Enter menu loop

Invoke Lineup menu
C3/012B:	20B940  	JSR $40B9      ; Apply user font
C3/012E:	203801  	JSR $0138      ; Clear saved cursor
C3/0131:	A92C    	LDA #$2C       ; C3/787B
C3/0133:	8526    	STA $26        ; Next: Init menu
C3/0135:	4CBA01  	JMP $01BA      ; Enter menu loop

Clear cursor position restored from Lineup's Status menu...
C3/0138:	7B      	TDC            ; Clear A
C3/0139:	A8      	TAY            ; Clear Y
C3/013A:	848E    	STY $8E        ; Clear position
C3/013C:	60      	RTS

Invoke bogus Lineup menu...
C3/013D:	20B940  	JSR $40B9      ; Apply user font
C3/0140:	203801  	JSR $0138      ; Clear saved cursor
C3/0143:	A92F    	LDA #$2F       ; C3/826C
C3/0145:	8526    	STA $26        ; Next: Bogus...
C3/0147:	8071    	BRA $01BA      ; Enter menu loop

Invoke SwdTech naming menu
C3/0149:	20B940  	JSR $40B9      ; Apply user font
C3/014C:	A93F    	LDA #$3F       ; C3/BE00
C3/014E:	8526    	STA $26        ; Next: Init menu
C3/0150:	8068    	BRA $01BA      ; Enter menu loop

Invoke Colosseum menu
C3/0152:	20B940  	JSR $40B9      ; Apply user font
C3/0155:	6479    	STZ $79        ; Never read...
C3/0157:	647A    	STZ $7A        ; Never read...
C3/0159:	647B    	STZ $7B        ; Never read...
C3/015B:	A9FF    	LDA #$FF       ; Empty item
C3/015D:	8D0502  	STA $0205      ; Will gain 1...
C3/0160:	A971    	LDA #$71       ; C3/B619
C3/0162:	8526    	STA $26        ; Next: Init menu
C3/0164:	8054    	BRA $01BA      ; Enter menu loop

Invoke final battle lineup
C3/0166:	20B940  	JSR $40B9      ; Apply user font
C3/0169:	A973    	LDA #$73       ; C3/B368
C3/016B:	8526    	STA $26        ; Next: Init menu
C3/016D:	804B    	BRA $01BA      ; Enter menu loop

Invoke Load menu
C3/016F:	AFF17F30	LDA $307FF1    ; RNG index in SRAM
C3/0173:	1A      	INC A          ; RNG index +1
C3/0174:	8FF17F30	STA $307FF1    ; Save changes
C3/0178:	224FACC3	JSL $C3AC4F    ; Init joypad data
C3/017C:	20B777  	JSR $77B7      ; Test SRAM markers
C3/017F:	901E    	BCC $019F      ; Abort if invalid
C3/0181:	A901    	LDA #$01       ; Song: The Prelude
C3/0183:	8D0113  	STA $1301      ; Set I/O port 1
C3/0186:	A910    	LDA #$10       ; APU command
C3/0188:	8D0013  	STA $1300      ; Set I/O port 0
C3/018B:	A980    	LDA #$80       ; Volume specs
C3/018D:	8D0213  	STA $1302      ; Set I/O port 2
C3/0190:	220400C5	JSL $C50004    ; Play song
C3/0194:	A9FF    	LDA #$FF       ; New game: No
C3/0196:	8D0502  	STA $0205      ; Preset exit mode
C3/0199:	A920    	LDA #$20       ; C3/1D69
C3/019B:	8526    	STA $26        ; Next: Init menu
C3/019D:	801B    	BRA $01BA      ; Enter menu loop

Fork: Force new game
C3/019F:	20BC2A  	JSR $2ABC      ; Reset play time
C3/01A2:	A901    	LDA #$01       ; Save slot: 1
C3/01A4:	8D2402  	STA $0224      ; Set last viewed
C3/01A7:	9C1F02  	STZ $021F      ; Game's file: None
C3/01AA:	A9FF    	LDA #$FF       ; Null value
C3/01AC:	8526    	STA $26        ; Next: Exit menu
C3/01AE:	9C0502  	STZ $0205      ; Set new game mode
C3/01B1:	8007    	BRA $01BA      ; Enter menu loop

Invoke actor naming menu
C3/01B3:	20B940  	JSR $40B9      ; Apply user font
C3/01B6:	A95D    	LDA #$5D       ; C3/6B5E
C3/01B8:	8526    	STA $26        ; Next: Init menu

Main loop for field menus
C3/01BA:	207D14  	JSR $147D      ; Refresh screen
C3/01BD:	7B      	TDC            ; Clear A
C3/01BE:	A526    	LDA $26        ; Menu command
C3/01C0:	C9FF    	CMP #$FF       ; Exit to map?
C3/01C2:	F014    	BEQ $01D8      ; Branch if so
C3/01C4:	C220    	REP #$20       ; 16-bit A
C3/01C6:	0A      	ASL A          ; Double it
C3/01C7:	AA      	TAX            ; Index it
C3/01C8:	E220    	SEP #$20       ; 8-bit A
C3/01CA:	FCDB01  	JSR ($01DB,X)  ; Handle menu cmd
C3/01CD:	201B12  	JSR $121B      ; Handle anim queue
C3/01D0:	20B813  	JSR $13B8      ; Update screen/pad
C3/01D3:	20DB02  	JSR $02DB      ; Check event timer
C3/01D6:	80E5    	BRA $01BD      ; Loop
C3/01D8:	6443    	STZ $43        ; Disable HDMA
C3/01DA:	60      	RTS

Jump table for the above
C3/01DB:	D71D    	; 00: Fade out screen
C3/01DD:	E41D    	; 01: Fade in screen
C3/01DF:	F11D    	; 02: Wait while menu fades in or out
C3/01E1:	FA1D    	; 03: Exit main menu's portrait area
C3/01E3:	F01A    	; 04: Initialize main menu
C3/01E5:	0A1E    	; 05: Sustain main menu
C3/01E7:	4E1E    	; 06: Target one actor in main menu
C3/01E9:	3C1B    	; 07: Initialize Item menu
C3/01EB:	5D1F    	; 08: Handle Item menu choice 1
C3/01ED:	C11B    	; 09: Initialize Skills menu
C3/01EF:	5A20    	; 0A: Sustain Skills menu
C3/01F1:	AC1C    	; 0B: Initialize Status menu
C3/01F3:	5522    	; 0C: Sustain Status menu
C3/01F5:	E31C    	; 0D: Initialize Config menu
C3/01F7:	2523    	; 0E: Sustain Config menu
C3/01F9:	7F24    	; 0F: Handle Order menu choice 1
C3/01FB:	C624    	; 10: Handle Order menu choice 2
C3/01FD:	1C25    	; 11: Switch members in Order menu
C3/01FF:	AA25    	; 12: Wait while member changes row
C3/0201:	061D    	; 13: Initialize Save menu
C3/0203:	B325    	; 14: Sustain Save menu
C3/0205:	491D    	; 15: Initialize save confirmation
C3/0207:	1026    	; 16: Sustain save confirmation
C3/0209:	6726    	; 17: Handle Item menu options
C3/020B:	B427    	; 18: Sustain rare item menu
C3/020D:	EC27    	; 19: Handle Item menu choice 2
C3/020F:	5528    	; 1A: Sustain Magic menu
C3/0211:	FD28    	; 1B: Sustain Lore menu
C3/0213:	1D29    	; 1C: Sustain Dance menu
C3/0215:	2D29    	; 1D: Sustain Rage menu
C3/0217:	4629    	; 1E: Handle esper selection
C3/0219:	1026    	; 1F: Unused duplicate...
C3/021B:	691D    	; 20: Initialize Load menu
C3/021D:	5D2A    	; 21: Sustain Load menu
C3/021F:	B71D    	; 22: Initialize load confirmation
C3/0221:	C52A    	; 23: Sustain load confirmation
C3/0223:	C0C3    	; 24: Initialize shop menu
C3/0225:	F2C3    	; 25: Sustain main shop menu
C3/0227:	14C4    	; 26: Handle buy item list
C3/0229:	5CC4    	; 27: Handle buy order menu
C3/022B:	65C5    	; 28: Return to Buy menu after delay
C3/022D:	6DC5    	; 29: Handle sell item list
C3/022F:	CDC5    	; 2A: Handle sell order menu
C3/0231:	A9C6    	; 2B: Return to Sell menu after delay
C3/0233:	7B78    	; 2C: Initialize Lineup menu
C3/0235:	FC78    	; 2D: Handle Lineup menu choice 1
C3/0237:	A079    	; 2E: Handle Lineup menu choice 2
C3/0239:	6C82    	; 2F: Bogus...
C3/023B:	AC82    	; 30: Bogus...
C3/023D:	AC82    	; 31: Bogus...
C3/023F:	AC82    	; 32: Bogus...
C3/0241:	E129    	; 33: Sustain Blitz menu
C3/0243:	AD29    	; 34: Wait while showing who holds esper
C3/0245:	1E1C    	; 35: Initialize Equip menu
C3/0247:	109E    	; 36: Handle Equip menu options
C3/0249:	1B1F    	; 37: Handle multitargeting in main menu
C3/024B:	981C    	; 38: Initialize party gear overview
C3/024D:	D029    	; 39: Sustain party gear overview
C3/024F:	002B    	; 3A: Initialize spell usage menu
C3/0251:	492B    	; 3B: Handle single-target spell
C3/0253:	B72D    	; 3C: Return to Magic menu
C3/0255:	132E    	; 3D: Handle multitarget spell
C3/0257:	F829    	; 3E: Sustain SwdTech menu
C3/0259:	00BE    	; 3F: Initialize SwdTech naming menu
C3/025B:	37BE    	; 40: Handle SwdTech naming choice 1
C3/025D:	7ABE    	; 41: Handle SwdTech naming choice 2
C3/025F:	6669    	; 42: Initialize Lineup's Status menu
C3/0261:	8869    	; 43: Sustain Lineup's Status menu
C3/0263:	A384    	; 44: Bogus...
C3/0265:	A384    	; 45: Bogus...
C3/0267:	A384    	; 46: Bogus...
C3/0269:	A343    	; 47: Initialize Cmd.Set menu
C3/026B:	C043    	; 48: Handle Cmd.Set menu member selection
C3/026D:	8E47    	; 49: Initialize Button Settings menu
C3/026F:	AB47    	; 4A: Sustain Button Settings menu
C3/0271:	E247    	; 4B: Initialize Controller menu
C3/0273:	FF47    	; 4C: Sustain Controller menu
C3/0275:	235F    	; 4D: Sustain esper data menu
C3/0277:	EFBE    	; 4E: Scroll to SwdTech naming page 2
C3/0279:	17BF    	; 4F: Scroll to SwdTech naming page 1
C3/027B:	D43A    	; 50: Scroll to Config page 2
C3/027D:	F53A    	; 51: Scroll to Config page 1
C3/027F:	731A    	; 52: Queue fade-in for save menu
C3/0281:	641A    	; 53: Queue fade-out for save menu
C3/0283:	821A    	; 54: Wait while save menu fades in or out
C3/0285:	73A0    	; 55: Handle selection of gear slot to fill
C3/0287:	BEA0    	; 56: Handle manual gear removal
C3/0289:	FEA0    	; 57: Handle gear browsing
C3/028B:	59A6    	; 58: Initialize Relic menu
C3/028D:	C6A6    	; 59: Handle Relic menu options
C3/028F:	0BA8    	; 5A: Handle selection of relic slot to fill
C3/0291:	A5A8    	; 5B: Handle relic browsing
C3/0293:	18A9    	; 5C: Handle relic removal
C3/0295:	5E6B    	; 5D: Initialize actor naming menu
C3/0297:	7091    	; 5E: Sustain shifted gear data menu
C3/0299:	A56B    	; 5F: Sustain actor naming menu
C3/029B:	4A6C    	; 60: Scroll to actor naming page 2
C3/029D:	716C    	; 61: Scroll to actor naming page 1
C3/029F:	1944    	; 62: Handle Cmd.Set menu command choice 1
C3/02A1:	5744    	; 63: Handle Cmd.Set menu command choice 2
C3/02A3:	0D91    	; 64: Sustain non-shifted gear data menu
C3/02A5:	AF37    	; 65: Shift screen
C3/02A7:	9381    	; 66: Queue fade-in for Lineup menu
C3/02A9:	8481    	; 67: Queue fade-out for Lineup menu
C3/02AB:	A281    	; 68: Wait while Lineup menu fades in or out
C3/02AD:	1B82    	; 69: Erase warning in Lineup menu after delay
C3/02AF:	F069    	; 6A: Sustain shifted Status menu
C3/02B1:	1423    	; 6B: Unknown, unused menu mode...
C3/02B3:	BFA7    	; 6C: Handle delayed fade-out for Reequip
C3/02B5:	801C    	; 6D: Open Equip menu after optimizing gear
C3/02B7:	8C1C    	; 6E: Open Equip menu after removing all gear
C3/02B9:	0E92    	; 6F: Initialize item usage menu
C3/02BB:	2092    	; 70: Sustain item usage menu
C3/02BD:	19B6    	; 71: Initialize Colosseum item menu
C3/02BF:	4BB6    	; 72: Sustain Colosseum item menu
C3/02C1:	68B3    	; 73: Initialize final battle lineup
C3/02C3:	95B3    	; 74: Sustain final battle lineup
C3/02C5:	24B7    	; 75: Initialize Colosseum matchup menu
C3/02C7:	7CB7    	; 76: Sustain Colosseum matchup menu
C3/02C9:	9B1B    	; 77: Return from item usage menu
C3/02CB:	F9B6    	; 78: Bogus...
C3/02CD:	8BA6    	; 79: Swap actor in Relic menu, retain Equip mode
C3/02CF:	99A6    	; 7A: Swap actor in Relic menu, retain Remove mode
C3/02D1:	0000    	; 7B: Bogus...
C3/02D3:	0000    	; 7C: Bogus...
C3/02D5:	C578    	; 7D: Return to Lineup menu from Status menu
C3/02D7:	4B1C    	; 7E: Swap actor in Equip menu, retain Equip mode
C3/02D9:	591C    	; 7F: Swap actor in Equip menu, retain Remove mode

Set to exit menu if event countdown timer expired
C3/02DB:	A5B4    	LDA $B4        ; Already handled?
C3/02DD:	D019    	BNE $02F8      ; Exit if so
C3/02DF:	AD8811  	LDA $1188      ; Timer 0 flags
C3/02E2:	8920    	BIT #$20       ; Abort if expired?
C3/02E4:	F012    	BEQ $02F8      ; Exit if not
C3/02E6:	AC8911  	LDY $1189      ; Timer expired?
C3/02E9:	D00D    	BNE $02F8      ; Exit if not
C3/02EB:	A9FF    	LDA #$FF       ; Null value
C3/02ED:	8527    	STA $27        ; Queue menu exit
C3/02EF:	6426    	STZ $26        ; Next: Fade-out
C3/02F1:	A905    	LDA #$05       ; Origin: Timer
C3/02F3:	8D0502  	STA $0205      ; Set exit reason
C3/02F6:	85B4    	STA $B4        ; Disable this fn
C3/02F8:	60      	RTS

Draw text string without diacritics
C3/02F9:	84E7    	STY $E7        ; Set src LBs
C3/02FB:	A9C3    	LDA #$C3       ; Bank: C3
C3/02FD:	85E9    	STA $E9        ; Set src HB
C3/02FF:	A600    	LDX $00        ; Dst index: 0
C3/0301:	9B      	TXY            ; Src index: 0
C3/0302:	C220    	REP #$20       ; 16-bit A
C3/0304:	A7E7    	LDA [$E7]      ; Tilemap ptr
C3/0306:	85EB    	STA $EB        ; Set dst LBs
C3/0308:	E6E7    	INC $E7        ; Src adr +1
C3/030A:	E6E7    	INC $E7        ; Src adr +1
C3/030C:	E220    	SEP #$20       ; 8-bit A
C3/030E:	A97E    	LDA #$7E       ; Bank: 7E
C3/0310:	85ED    	STA $ED        ; Set dst HB
C3/0312:	B7E7    	LDA [$E7],Y    ; Text character
C3/0314:	F00F    	BEQ $0325      ; Exit if <end>
C3/0316:	5A      	PHY            ; Save src index
C3/0317:	9B      	TXY            ; Dst index
C3/0318:	97EB    	STA [$EB],Y    ; Add char to map
C3/031A:	E8      	INX            ; Dst index +1
C3/031B:	9B      	TXY            ; Move it to Y
C3/031C:	A529    	LDA $29        ; Palette, etc.
C3/031E:	97EB    	STA [$EB],Y    ; Set attributes
C3/0320:	E8      	INX            ; Dst index +1
C3/0321:	7A      	PLY            ; Src index
C3/0322:	C8      	INY            ; Src index +1
C3/0323:	80ED    	BRA $0312      ; Load next char
C3/0325:	60      	RTS

Draw text string with diacritics but without Roman characters
C3/0326:	84E7    	STY $E7        ; Set src LBs
C3/0328:	A9C3    	LDA #$C3       ; Bank: C3
C3/032A:	85E9    	STA $E9        ; Set src HB
C3/032C:	A600    	LDX $00        ; Dst index: 0
C3/032E:	9B      	TXY            ; Src index: 0
C3/032F:	C220    	REP #$20       ; 16-bit A
C3/0331:	A7E7    	LDA [$E7]      ; Tilemap ptr
C3/0333:	85EB    	STA $EB        ; Set dst LBs
C3/0335:	E6E7    	INC $E7        ; Src adr +1
C3/0337:	E6E7    	INC $E7        ; Src adr +1
C3/0339:	E220    	SEP #$20       ; 8-bit A
C3/033B:	A97E    	LDA #$7E       ; Bank: 7E
C3/033D:	85ED    	STA $ED        ; Set dst HB

Fork: Load current character
C3/033F:	B7E7    	LDA [$E7],Y    ; Text character
C3/0341:	85E0    	STA $E0        ; Memorize it
C3/0343:	F063    	BEQ $03A8      ; Exit if <end>

Fork: Handle line break (unused?)
C3/0345:	C901    	CMP #$01       ; Line break?
C3/0347:	D011    	BNE $035A      ; Branch if not
C3/0349:	C220    	REP #$20       ; 16-bit A
C3/034B:	A5EB    	LDA $EB        ; Tilemap ptr
C3/034D:	18      	CLC            ; Prepare ADC
C3/034E:	698000  	ADC #$0080     ; Go 2 rows down
C3/0351:	85EB    	STA $EB        ; Save changes
C3/0353:	A600    	LDX $00        ; Dst index: 0
C3/0355:	E220    	SEP #$20       ; 8-bit A
C3/0357:	C8      	INY            ; Src index +1
C3/0358:	80E5    	BRA $033F      ; Load next char

Fork: Character without diacritic
C3/035A:	5A      	PHY            ; Save src index
C3/035B:	C953    	CMP #$53       ; Normal char?
C3/035D:	9006    	BCC $0365      ; Branch if not
C3/035F:	A9FF    	LDA #$FF       ; Space char
C3/0361:	85E1    	STA $E1        ; Set diacritic
C3/0363:	8020    	BRA $0385      ; Update tilemap

Fork: Character with handakuten
C3/0365:	C949    	CMP #$49       ; Bogus char?
C3/0367:	900D    	BCC $0376      ; Branch if not
C3/0369:	A952    	LDA #$52       ; Mark: []
C3/036B:	85E1    	STA $E1        ; Set diacritic
C3/036D:	A5E0    	LDA $E0        ; Letter number
C3/036F:	18      	CLC            ; Prepare ADC
C3/0370:	6917    	ADC #$17       ; Get true one
C3/0372:	85E0    	STA $E0        ; Save changes
C3/0374:	800F    	BRA $0385      ; Update tilemap

Fork: Character with dakuten
C3/0376:	C920    	CMP #$20       ; Roman range?
C3/0378:	900B    	BCC $0385      ; Branch if not
C3/037A:	A951    	LDA #$51       ; Mark: ["]
C3/037C:	85E1    	STA $E1        ; Set diacritic
C3/037E:	A5E0    	LDA $E0        ; Letter number
C3/0380:	18      	CLC            ; Prepare ADC
C3/0381:	6940    	ADC #$40       ; Get true one
C3/0383:	85E0    	STA $E0        ; Save changes

Fork: Add character to tilemap
C3/0385:	9B      	TXY            ; Base dst index
C3/0386:	A5E1    	LDA $E1        ; Diacritic
C3/0388:	97EB    	STA [$EB],Y    ; Add to tilemap
C3/038A:	C8      	INY            ; Index +1
C3/038B:	A529    	LDA $29        ; Palette, etc.
C3/038D:	97EB    	STA [$EB],Y    ; Set attributes
C3/038F:	C220    	REP #$20       ; 16-bit A
C3/0391:	8A      	TXA            ; Base RAM index
C3/0392:	18      	CLC            ; Prepare ADC
C3/0393:	694000  	ADC #$0040     ; Go 1 row down
C3/0396:	A8      	TAY            ; Index it
C3/0397:	E220    	SEP #$20       ; 8-bit A
C3/0399:	A5E0    	LDA $E0        ; Base character
C3/039B:	97EB    	STA [$EB],Y    ; Add to tilemap
C3/039D:	C8      	INY            ; Index +1
C3/039E:	A529    	LDA $29        ; Palette, etc.
C3/03A0:	97EB    	STA [$EB],Y    ; Set attributes
C3/03A2:	E8      	INX            ; Dst index +1
C3/03A3:	E8      	INX            ; Dst index +1
C3/03A4:	7A      	PLY            ; Src index
C3/03A5:	C8      	INY            ; Src index +1
C3/03A6:	8097    	BRA $033F      ; Load next char
C3/03A8:	60      	RTS

Load and adjust window tile numbers, define attributes
C3/03A9:	84E7    	STY $E7        ; Save attributes
C3/03AB:	A600    	LDX $00        ; Index: 0
C3/03AD:	C220    	REP #$20       ; 16-bit A
C3/03AF:	BFD104C3	LDA $C304D1,X  ; Tile number
C3/03B3:	18      	CLC            ; Prepare ADC
C3/03B4:	65E7    	ADC $E7        ; Add attributes
C3/03B6:	9F199F7E	STA $7E9F19,X  ; Save in RAM
C3/03BA:	E8      	INX            ; Index +1
C3/03BB:	E8      	INX            ; Index +1
C3/03BC:	E03800  	CPX #$0038     ; Done 28 tiles?
C3/03BF:	D0EE    	BNE $03AF      ; Loop if not
C3/03C1:	E220    	SEP #$20       ; 8-bit A
C3/03C3:	60      	RTS

Prepare to and draw a menu window
C3/03C4:	A9C3    	LDA #$C3       ; Bank: C3
C3/03C6:	85E9    	STA $E9        ; Set src HB
C3/03C8:	84E7    	STY $E7        ; Set src LBs
C3/03CA:	A600    	LDX $00        ; ...
C3/03CC:	9B      	TXY            ; Index: 0
C3/03CD:	C220    	REP #$20       ; 16-bit A
C3/03CF:	B7E7    	LDA [$E7],Y    ; Tilemap ptr
C3/03D1:	85EB    	STA $EB        ; Set position
C3/03D3:	C8      	INY            ; Index +1
C3/03D4:	C8      	INY            ; Index +1
C3/03D5:	B7E7    	LDA [$E7],Y    ; Window size
C3/03D7:	85E0    	STA $E0        ; Memorize it
C3/03D9:	E220    	SEP #$20       ; 8-bit A
C3/03DB:	85E2    	STA $E2        ; ...
C3/03DD:	A97E    	LDA #$7E       ; Bank: 7E
C3/03DF:	85ED    	STA $ED        ; Set ptr HB
C3/03E1:	A600    	LDX $00        ; Clear X
C3/03E3:	9B      	TXY            ; Clear Y...
C3/03E4:	E210    	SEP #$10       ; 8-bit X, Y
C3/03E6:	A6E0    	LDX $E0        ; Inner width
C3/03E8:	A4E1    	LDY $E1        ; Inner height
C3/03EA:	C210    	REP #$10       ; 16-bit X, Y
C3/03EC:	86EF    	STX $EF        ; Set 16b width
C3/03EE:	84F1    	STY $F1        ; Set 16b height
C3/03F0:	C220    	REP #$20       ; 16-bit A
C3/03F2:	20F803  	JSR $03F8      ; Draw window
C3/03F5:	E220    	SEP #$20       ; 8-bit A
C3/03F7:	60      	RTS

Draw a menu window
C3/03F8:	202604  	JSR $0426      ; Draw top row
C3/03FB:	A600    	LDX $00        ; Inner row: 1st
C3/03FD:	A04000  	LDY #$0040     ; Skipped rows: 1
C3/0400:	84F3    	STY $F3        ; Init map index
C3/0402:	DA      	PHX            ; Save row number
C3/0403:	8A      	TXA            ; Move it to A
C3/0404:	290300  	AND #$0003     ; Get pattern row
C3/0407:	0A      	ASL A          ; Double it
C3/0408:	AA      	TAX            ; Index it
C3/0409:	FC1E04  	JSR ($041E,X)  ; Draw inner row
C3/040C:	A5F3    	LDA $F3        ; Tilemap index
C3/040E:	18      	CLC            ; Prepare ADC
C3/040F:	694000  	ADC #$0040     ; Go 1 row down
C3/0412:	85F3    	STA $F3        ; Save changes
C3/0414:	A8      	TAY            ; Index it
C3/0415:	FA      	PLX            ; Row number
C3/0416:	E8      	INX            ; Row number +1
C3/0417:	E4F1    	CPX $F1        ; At last row?
C3/0419:	D0E7    	BNE $0402      ; Loop if not
C3/041B:	4C3E04  	JMP $043E      ; Draw last row

Jump table for the above
C3/041E:	5404    	; Pattern row 1 of 4
C3/0420:	5E04    	; Pattern row 2 of 4
C3/0422:	6B04    	; Pattern row 3 of 4
C3/0424:	7804    	; Pattern row 4 of 4

Draw window's upper row
C3/0426:	A400    	LDY $00        ; Map index: 0
C3/0428:	208B04  	JSR $048B      ; Define pattern
C3/042B:	AF499F7E	LDA $7E9F49    ; NW corner tile
C3/042F:	85E3    	STA $E3        ; Set first tile
C3/0431:	AF4B9F7E	LDA $7E9F4B    ; NE corner tile
C3/0435:	85E5    	STA $E5        ; Set final tile
C3/0437:	A22000  	LDX #$0020     ; Base tile index
C3/043A:	86E0    	STX $E0        ; Memorize it
C3/043C:	806D    	BRA $04AB      ; Draw top row

Draw window's lower row
C3/043E:	208B04  	JSR $048B      ; Define pattern
C3/0441:	AF4D9F7E	LDA $7E9F4D    ; SW corner tile
C3/0445:	85E3    	STA $E3        ; Set first tile
C3/0447:	AF4F9F7E	LDA $7E9F4F    ; SE corner tile
C3/044B:	85E5    	STA $E5        ; Set final tile
C3/044D:	A22400  	LDX #$0024     ; Base tile index
C3/0450:	86E0    	STX $E0        ; Memorize it
C3/0452:	8057    	BRA $04AB      ; Draw bottom row

Draw inner window row, pattern part 1 of 4
C3/0454:	208504  	JSR $0485      ; Define pattern
C3/0457:	209104  	JSR $0491      ; Get side tiles
C3/045A:	64E0    	STZ $E0        ; Base tile index
C3/045C:	804D    	BRA $04AB      ; Draw inner row

Draw inner window row, pattern part 2 of 4
C3/045E:	208504  	JSR $0485      ; Define pattern
C3/0461:	209E04  	JSR $049E      ; Get side tiles
C3/0464:	A20800  	LDX #$0008     ; Base tile index
C3/0467:	86E0    	STX $E0        ; Memorize it
C3/0469:	8040    	BRA $04AB      ; Draw inner row

Draw inner window row, pattern part 3 of 4
C3/046B:	208504  	JSR $0485      ; Define pattern
C3/046E:	209104  	JSR $0491      ; Get side tiles
C3/0471:	A21000  	LDX #$0010     ; Base tile index
C3/0474:	86E0    	STX $E0        ; Memorize it
C3/0476:	8033    	BRA $04AB      ; Draw inner row

Draw inner window row, pattern part 4 of 4
C3/0478:	208504  	JSR $0485      ; Define pattern
C3/047B:	209E04  	JSR $049E      ; Get side tiles
C3/047E:	A21800  	LDX #$0018     ; Base tile index
C3/0481:	86E0    	STX $E0        ; Memorize it
C3/0483:	8026    	BRA $04AB      ; Draw inner row

Set pattern width for inner window tiles
C3/0485:	A20300  	LDX #$0003     ; Tiles: 4
C3/0488:	86F5    	STX $F5        ; Set pattern width
C3/048A:	60      	RTS

Set pattern width for top or bottom window border
C3/048B:	A20100  	LDX #$0001     ; Tiles: 2
C3/048E:	86F5    	STX $F5        ; Set pattern width
C3/0490:	60      	RTS

Get window side tiles for odd-numbered pattern row
C3/0491:	AF419F7E	LDA $7E9F41    ; Left border A
C3/0495:	85E3    	STA $E3        ; Set first tile
C3/0497:	AF439F7E	LDA $7E9F43    ; Right border A
C3/049B:	85E5    	STA $E5        ; Set final tile
C3/049D:	60      	RTS

Get window side tiles for even-numbered pattern row
C3/049E:	AF459F7E	LDA $7E9F45    ; Left border B
C3/04A2:	85E3    	STA $E3        ; Set first tile
C3/04A4:	AF479F7E	LDA $7E9F47    ; Right border B
C3/04A8:	85E5    	STA $E5        ; Set final tile
C3/04AA:	60      	RTS

Draw a row of window tiles
C3/04AB:	A600    	LDX $00        ; Inner col: 1st
C3/04AD:	A5E3    	LDA $E3        ; Leftmost tile
C3/04AF:	97EB    	STA [$EB],Y    ; Add to tilemap
C3/04B1:	C8      	INY            ; Map index +1
C3/04B2:	C8      	INY            ; Map index +1
C3/04B3:	DA      	PHX            ; Save column
C3/04B4:	8A      	TXA            ; Move it to A
C3/04B5:	25F5    	AND $F5        ; Stay in pattern
C3/04B7:	0A      	ASL A          ; Double it
C3/04B8:	18      	CLC            ; ...
C3/04B9:	65E0    	ADC $E0        ; Add base index
C3/04BB:	AA      	TAX            ; Index sum
C3/04BC:	BF199F7E	LDA $7E9F19,X  ; Inner tile
C3/04C0:	FA      	PLX            ; Column number
C3/04C1:	E4EF    	CPX $EF        ; At last one?
C3/04C3:	F007    	BEQ $04CC      ; Branch if so
C3/04C5:	97EB    	STA [$EB],Y    ; Add tile to map
C3/04C7:	C8      	INY            ; Map index +1
C3/04C8:	C8      	INY            ; Map index +1
C3/04C9:	E8      	INX            ; Column +1
C3/04CA:	80E7    	BRA $04B3      ; Do next tile
C3/04CC:	A5E5    	LDA $E5        ; Rightmost tile
C3/04CE:	97EB    	STA [$EB],Y    ; Add to tilemap
C3/04D0:	60      	RTS

Window tile numbers
C3/04D1:	8001    	; Inner part 1,1
C3/04D3:	8101    	; Inner part 1,2
C3/04D5:	8201    	; Inner part 1,3
C3/04D7:	8301    	; Inner part 1,4
C3/04D9:	8401    	; Inner part 2,1
C3/04DB:	8501    	; Inner part 2,2
C3/04DD:	8601    	; Inner part 2,3
C3/04DF:	8701    	; Inner part 2,4
C3/04E1:	8801    	; Inner part 3,1
C3/04E3:	8901    	; Inner part 3,2
C3/04E5:	8A01    	; Inner part 3,3
C3/04E7:	8B01    	; Inner part 3,4
C3/04E9:	8C01    	; Inner part 4,1
C3/04EB:	8D01    	; Inner part 4,2
C3/04ED:	8E01    	; Inner part 4,3
C3/04EF:	8F01    	; Inner part 4,4
C3/04F1:	9101    	; Upper border A
C3/04F3:	9201    	; Upper border B
C3/04F5:	9901    	; Lower border A
C3/04F7:	9A01    	; Lower border B
C3/04F9:	9401    	; Left border A
C3/04FB:	9501    	; Right border A
C3/04FD:	9601    	; Left border B
C3/04FF:	9701    	; Right border B
C3/0501:	9001    	; NW corner
C3/0503:	9301    	; NE corner
C3/0505:	9801    	; SW corner
C3/0507:	9B01    	; SE corner

Draw 3 digits (16-bit number)
C3/0509:	A00500  	LDY #$0005     ; Digits: 5
C3/050C:	84E0    	STY $E0        ; Set counter
C3/050E:	A00200  	LDY #$0002     ; Skipped: 2
C3/0511:	8037    	BRA $054A      ; Draw text

Draw 4 digits
C3/0513:	A00500  	LDY #$0005     ; Digits: 5
C3/0516:	84E0    	STY $E0        ; Set counter
C3/0518:	A00100  	LDY #$0001     ; Skipped: 1
C3/051B:	802D    	BRA $054A      ; Draw text

Draw 5 digits
C3/051D:	A00500  	LDY #$0005     ; Digits: 5
C3/0520:	84E0    	STY $E0        ; Set counter
C3/0522:	A400    	LDY $00        ; Skipped: 0
C3/0524:	8024    	BRA $054A      ; Draw text

Draw 8 digits
C3/0526:	A00800  	LDY #$0008     ; Digits: 8
C3/0529:	84E0    	STY $E0        ; Set counter
C3/052B:	A400    	LDY $00        ; Skipped: 0
C3/052D:	801B    	BRA $054A      ; Draw text

Draw 7 digits
C3/052F:	A00800  	LDY #$0008     ; Digits: 8
C3/0532:	84E0    	STY $E0        ; Set counter
C3/0534:	A00100  	LDY #$0001     ; Skipped: 1
C3/0537:	8011    	BRA $054A      ; Draw text

Draw 2 digits
C3/0539:	A00300  	LDY #$0003     ; Digits: 3
C3/053C:	84E0    	STY $E0        ; Set counter
C3/053E:	A00100  	LDY #$0001     ; Skipped: 1
C3/0541:	8007    	BRA $054A      ; Draw text

Draw 3 digits (8-bit number)
C3/0543:	A00300  	LDY #$0003     ; Digits: 3
C3/0546:	84E0    	STY $E0        ; Set counter
C3/0548:	A400    	LDY $00        ; Skipped: 0
C3/054A:	86EB    	STX $EB        ; Set dst LBs
C3/054C:	A97E    	LDA #$7E       ; Bank: 7E
C3/054E:	85ED    	STA $ED        ; Set dst HB
C3/0550:	BB      	TYX            ; Digit index
C3/0551:	A400    	LDY $00        ; Map index: 0
C3/0553:	B5F7    	LDA $F7,X      ; Digit char
C3/0555:	97EB    	STA [$EB],Y    ; Add to tilemap
C3/0557:	C8      	INY            ; Map index +1
C3/0558:	A529    	LDA $29        ; Palette, etc.
C3/055A:	97EB    	STA [$EB],Y    ; Set attributes
C3/055C:	C8      	INY            ; Map index +1
C3/055D:	E8      	INX            ; Digit index +1
C3/055E:	E4E0    	CPX $E0        ; More digits?
C3/0560:	D0F1    	BNE $0553      ; Loop if so
C3/0562:	60      	RTS

Convert 8-bit number into text, blank leading zeroes
C3/0563:	207C05  	JSR $057C      ; Turn into text
C3/0566:	A400    	LDY $00        ; 1st: Hundreds
C3/0568:	A20200  	LDX #$0002     ; Digits left: 2
C3/056B:	B9F700  	LDA $00F7,Y    ; Digit char
C3/056E:	C953    	CMP #$53       ; Zero?
C3/0570:	D009    	BNE $057B      ; Exit if not
C3/0572:	A9FF    	LDA #$FF       ; Space char
C3/0574:	99F700  	STA $00F7,Y    ; Replace digit
C3/0577:	C8      	INY            ; Point to next
C3/0578:	CA      	DEX            ; One less left
C3/0579:	D0F0    	BNE $056B      ; Loop till last
C3/057B:	60      	RTS

Convert 8-bit number into text, retain leading zeroes
C3/057C:	85E0    	STA $E0        ; Save number
C3/057E:	A903    	LDA #$03       ; Digits: 3
C3/0580:	85E4    	STA $E4        ; Set counter
C3/0582:	A400    	LDY $00        ; RAM index: 0
C3/0584:	BB      	TYX            ; ROM index: 0
C3/0585:	64E1    	STZ $E1        ; Digit: 0
C3/0587:	BFAE05C3	LDA $C305AE,X  ; Power of 10
C3/058B:	E8      	INX            ; ROM index +1
C3/058C:	85E3    	STA $E3        ; Save power
C3/058E:	A5E0    	LDA $E0        ; Revised number
C3/0590:	38      	SEC            ; Prepare SBC
C3/0591:	E5E3    	SBC $E3        ; Deduct power
C3/0593:	9006    	BCC $059B      ; Branch if < 0
C3/0595:	85E0    	STA $E0        ; Save changes
C3/0597:	E6E1    	INC $E1        ; Digit +1
C3/0599:	80F3    	BRA $058E      ; Loop
C3/059B:	18      	CLC            ; ...
C3/059C:	65ED    	ADC $ED        ; ...
C3/059E:	85F3    	STA $F3        ; ...
C3/05A0:	A5E1    	LDA $E1        ; Digit
C3/05A2:	18      	CLC            ; Prepare ADC
C3/05A3:	6953    	ADC #$53       ; Turn into text
C3/05A5:	99F700  	STA $00F7,Y    ; Set digit char
C3/05A8:	C8      	INY            ; Point to next
C3/05A9:	C6E4    	DEC $E4        ; One less left
C3/05AB:	D0D8    	BNE $0585      ; Loop till last
C3/05AD:	60      	RTS

Powers of ten for the above
C3/05AE:	64      	; 100
C3/05AF:	0A      	; 10
C3/05B0:	01      	; 1

Convert 16-bit number into text, blank leading zeroes
C3/05B1:	A905    	LDA #$05       ; Digits: 5
C3/05B3:	85E0    	STA $E0        ; Set counter
C3/05B5:	A400    	LDY $00        ; RAM index: 0
C3/05B7:	BB      	TYX            ; ROM index: 0
C3/05B8:	C220    	REP #$20       ; 16-bit A
C3/05BA:	BFFB05C3	LDA $C305FB,X  ; Power of 10
C3/05BE:	E8      	INX            ; ROM index +1
C3/05BF:	E8      	INX            ; ROM index +1
C3/05C0:	85ED    	STA $ED        ; Save power
C3/05C2:	64EB    	STZ $EB        ; Digit: 0
C3/05C4:	38      	SEC            ; Prepare SBC
C3/05C5:	A5F3    	LDA $F3        ; Revised number
C3/05C7:	E5ED    	SBC $ED        ; Deduct power
C3/05C9:	9006    	BCC $05D1      ; Branch if < 0
C3/05CB:	85F3    	STA $F3        ; Save changes
C3/05CD:	E6EB    	INC $EB        ; Digit +1
C3/05CF:	80F3    	BRA $05C4      ; Loop

Fork: Convert digit into text
C3/05D1:	18      	CLC            ; ...
C3/05D2:	65ED    	ADC $ED        ; ...
C3/05D4:	85F3    	STA $F3        ; ...
C3/05D6:	E220    	SEP #$20       ; 8-bit A
C3/05D8:	A5EB    	LDA $EB        ; Digit
C3/05DA:	18      	CLC            ; ...
C3/05DB:	6953    	ADC #$53       ; Turn into text
C3/05DD:	99F700  	STA $00F7,Y    ; Set digit char
C3/05E0:	C8      	INY            ; RAM index +1
C3/05E1:	C6E0    	DEC $E0        ; One less digit
C3/05E3:	D0D3    	BNE $05B8      ; Loop till last

Fork: Blank leading zeroes
C3/05E5:	A400    	LDY $00        ; Index: 0
C3/05E7:	A20400  	LDX #$0004     ; Digits: 4
C3/05EA:	B9F700  	LDA $00F7,Y    ; Digit char
C3/05ED:	C953    	CMP #$53       ; Zero?
C3/05EF:	D009    	BNE $05FA      ; Exit if not
C3/05F1:	A9FF    	LDA #$FF       ; Space char
C3/05F3:	99F700  	STA $00F7,Y    ; Replace digit
C3/05F6:	C8      	INY            ; Point to next
C3/05F7:	CA      	DEX            ; One less left
C3/05F8:	D0F0    	BNE $05EA      ; Loop till last
C3/05FA:	60      	RTS

Powers of ten for the above
C3/05FB:	1027    	; 10000
C3/05FD:	E803    	; 1000
C3/05FF:	6400    	; 100
C3/0601:	0A00    	; 10
C3/0603:	0100    	; 1

Convert 24-bit number into text, blank leading zeroes
C3/0605:	64F4    	STZ $F4        ; Number HB: 0
C3/0607:	A908    	LDA #$08       ; Digits: 8
C3/0609:	85E0    	STA $E0        ; Set counter
C3/060B:	A400    	LDY $00        ; RAM index: 0
C3/060D:	BB      	TYX            ; ROM index: 0
C3/060E:	C220    	REP #$20       ; 16-bit A
C3/0610:	64EB    	STZ $EB        ; Digit: 0
C3/0612:	38      	SEC            ; Prepare SBC
C3/0613:	A5F1    	LDA $F1        ; Number LBs
C3/0615:	FF6106C3	SBC $C30661,X  ; Deduct power's
C3/0619:	85F1    	STA $F1        ; Save changes
C3/061B:	A5F3    	LDA $F3        ; Number HBs
C3/061D:	FF7106C3	SBC $C30671,X  ; Deduct power's
C3/0621:	85F3    	STA $F3        ; Save changes
C3/0623:	9004    	BCC $0629      ; Branch if < 0
C3/0625:	E6EB    	INC $EB        ; Digit +1
C3/0627:	80E9    	BRA $0612      ; Loop

Fork: Cancel subtraction and convert digit
C3/0629:	A5F1    	LDA $F1        ; Number LBs
C3/062B:	18      	CLC            ; ...
C3/062C:	7F6106C3	ADC $C30661,X  ; Reverse SBC
C3/0630:	85F1    	STA $F1        ; Save changes
C3/0632:	A5F3    	LDA $F3        ; Number HBs
C3/0634:	7F7106C3	ADC $C30671,X  ; Reverse SBC
C3/0638:	85F3    	STA $F3        ; Save changes
C3/063A:	E220    	SEP #$20       ; 8-bit A
C3/063C:	A5EB    	LDA $EB        ; Digit
C3/063E:	18      	CLC            ; Prepare ADC
C3/063F:	6953    	ADC #$53       ; Turn into text
C3/0641:	99F700  	STA $00F7,Y    ; Set digit char
C3/0644:	C8      	INY            ; RAM index +1
C3/0645:	E8      	INX            ; ROM index +1
C3/0646:	E8      	INX            ; ROM index +1
C3/0647:	C6E0    	DEC $E0        ; One less digit
C3/0649:	D0C3    	BNE $060E      ; Loop till last

Fork: Blank leading zeroes
C3/064B:	A400    	LDY $00        ; Index: 0
C3/064D:	A20700  	LDX #$0007     ; Digits: 7
C3/0650:	B9F700  	LDA $00F7,Y    ; Digit char
C3/0653:	C953    	CMP #$53       ; Zero?
C3/0655:	D009    	BNE $0660      ; Exit if not
C3/0657:	A9FF    	LDA #$FF       ; Space char
C3/0659:	99F700  	STA $00F7,Y    ; Replace digit
C3/065C:	C8      	INY            ; Point to next
C3/065D:	CA      	DEX            ; One less left
C3/065E:	D0F0    	BNE $0650      ; Loop till last
C3/0660:	60      	RTS

Powers of ten, low bytes
C3/0661:	8096    	; 10000000
C3/0663:	4042    	; 1000000
C3/0665:	A086    	; 100000
C3/0667:	1027    	; 10000
C3/0669:	E803    	; 1000
C3/066B:	6400    	; 100
C3/066D:	0A00    	; 10
C3/066F:	0100    	; 1

Powers of ten, high bytes
C3/0671:	9800    	; 10000000
C3/0673:	0F00    	; 1000000
C3/0675:	0100    	; 100000
C3/0677:	0000    	; 10000
C3/0679:	0000    	; 1000
C3/067B:	0000    	; 100
C3/067D:	0000    	; 10
C3/067F:	0000    	; 1

Load navigation parameters for menu area
C3/0681:	A9C3    	LDA #$C3       ; Bank: C3
C3/0683:	85ED    	STA $ED        ; Set src HB
C3/0685:	84EB    	STY $EB        ; Set src LBs
C3/0687:	A400    	LDY $00        ; Index: 0
C3/0689:	B7EB    	LDA [$EB],Y    ; Wrap flags
C3/068B:	8559    	STA $59        ; Save in RAM
C3/068D:	C8      	INY            ; Index +1
C3/068E:	C220    	REP #$20       ; 16-bit A
C3/0690:	6451    	STZ $51        ; See C3/0758...
C3/0692:	B7EB    	LDA [$EB],Y    ; Initial spot
C3/0694:	854D    	STA $4D        ; Set cursor's
C3/0696:	C8      	INY            ; Index +1
C3/0697:	C8      	INY            ; Index +1
C3/0698:	B7EB    	LDA [$EB],Y    ; Rows, columns
C3/069A:	8553    	STA $53        ; Set boundaries
C3/069C:	644F    	STZ $4F        ; List col/row: 1
C3/069E:	E220    	SEP #$20       ; 8-bit A
C3/06A0:	60      	RTS

Target party's leader
C3/06A1:	7B      	TDC            ; Clear A
C3/06A2:	A8      	TAY            ; Member: 1st
C3/06A3:	98      	TYA            ; Member slot
C3/06A4:	0A      	ASL A          ; Double it
C3/06A5:	AA      	TAX            ; Index it
C3/06A6:	B585    	LDA $85,X      ; Empty slot?
C3/06A8:	D008    	BNE $06B2      ; Exit if not
C3/06AA:	E64E    	INC $4E        ; Cursor row +1
C3/06AC:	C8      	INY            ; Member slot +1
C3/06AD:	C00400  	CPY #$0004     ; Done all 4?
C3/06B0:	D0F1    	BNE $06A3      ; Loop if not
C3/06B2:	60      	RTS

Set address to table of cursor coordinates
C3/06B3:	84E7    	STY $E7        ; Set src LBs
C3/06B5:	A9C3    	LDA #$C3       ; Bank: C3
C3/06B7:	85E9    	STA $E9        ; Set src HB
C3/06B9:	60      	RTS

Position cursor in party area of Lineup menu
C3/06BA:	20B306  	JSR $06B3      ; Set source
C3/06BD:	20D306  	JSR $06D3      ; Set list slot
C3/06C0:	4C4807  	JMP $0748      ; Set coords

Position cursor in unscrollable area
C3/06C3:	20B306  	JSR $06B3      ; Set source
C3/06C6:	20FA06  	JSR $06FA      ; Set list slot
C3/06C9:	807D    	BRA $0748      ; Set coords

Position cursor in scrollable list
C3/06CB:	20B306  	JSR $06B3      ; Set source
C3/06CE:	202107  	JSR $0721      ; Set list slot
C3/06D1:	8075    	BRA $0748      ; Set coords

Set cursor's slot position in party area of Lineup menu
C3/06D3:	8B      	PHB            ; Save DB
C3/06D4:	A900    	LDA #$00       ; Clear A
C3/06D6:	48      	PHA            ; Put on stack
C3/06D7:	AB      	PLB            ; Set DB to 0
C3/06D8:	AF124200	LDA $004212    ; PPU status
C3/06DC:	2940    	AND #$40       ; H-Blank?
C3/06DE:	F0F8    	BEQ $06D8      ; Loop if not
C3/06E0:	A554    	LDA $54        ; Number of rows
C3/06E2:	8D1B21  	STA $211B      ; Set matrix A LB
C3/06E5:	9C1B21  	STZ $211B      ; Clear HB
C3/06E8:	A54D    	LDA $4D        ; Cursor column
C3/06EA:	8D1C21  	STA $211C      ; Set matrix B
C3/06ED:	8D1C21  	STA $211C      ; ...
C3/06F0:	AD3421  	LDA $2134      ; Product LB
C3/06F3:	18      	CLC            ; Prepare ADC
C3/06F4:	654E    	ADC $4E        ; Add cursor row
C3/06F6:	854B    	STA $4B        ; Set cursor slot
C3/06F8:	AB      	PLB            ; Restore DB
C3/06F9:	60      	RTS

Set cursor's slot position in unscrollable area
C3/06FA:	8B      	PHB            ; Save DB
C3/06FB:	A900    	LDA #$00       ; Clear A
C3/06FD:	48      	PHA            ; Put on stack
C3/06FE:	AB      	PLB            ; Set DB to 0
C3/06FF:	AF124200	LDA $004212    ; PPU status
C3/0703:	2940    	AND #$40       ; H-Blank?
C3/0705:	F0F8    	BEQ $06FF      ; Loop if not
C3/0707:	A553    	LDA $53        ; Column count
C3/0709:	8D1B21  	STA $211B      ; Set matrix A LB
C3/070C:	9C1B21  	STZ $211B      ; Clear HB
C3/070F:	A54E    	LDA $4E        ; Cursor row
C3/0711:	8D1C21  	STA $211C      ; Set matrix B
C3/0714:	8D1C21  	STA $211C      ; ...
C3/0717:	AD3421  	LDA $2134      ; Product LB
C3/071A:	18      	CLC            ; Prepare ADC
C3/071B:	654D    	ADC $4D        ; Add cursor col
C3/071D:	854B    	STA $4B        ; Set cursor slot
C3/071F:	AB      	PLB            ; Restore DB
C3/0720:	60      	RTS

Set cursor's slot position in scrollable list
C3/0721:	8B      	PHB            ; Save DB
C3/0722:	A900    	LDA #$00       ; Clear A
C3/0724:	48      	PHA            ; Put on stack
C3/0725:	AB      	PLB            ; Set DB to 0
C3/0726:	AF124200	LDA $004212    ; PPU status
C3/072A:	2940    	AND #$40       ; H-Blank?
C3/072C:	F0F8    	BEQ $0726      ; Loop if not
C3/072E:	A553    	LDA $53        ; Column count
C3/0730:	8D1B21  	STA $211B      ; Set matrix A LB
C3/0733:	9C1B21  	STZ $211B      ; Clear HB
C3/0736:	A550    	LDA $50        ; List row
C3/0738:	8D1C21  	STA $211C      ; Set matrix B
C3/073B:	8D1C21  	STA $211C      ; ...
C3/073E:	AD3421  	LDA $2134      ; Product LB
C3/0741:	18      	CLC            ; Prepare ADC
C3/0742:	654F    	ADC $4F        ; Add list column
C3/0744:	854B    	STA $4B        ; Set cursor slot
C3/0746:	AB      	PLB            ; Restore DB
C3/0747:	60      	RTS

Set cursor's position in pixels
C3/0748:	8B      	PHB            ; Save DB
C3/0749:	A900    	LDA #$00       ; Zero A
C3/074B:	48      	PHA            ; Put on stack
C3/074C:	AB      	PLB            ; Set DB to 0
C3/074D:	A553    	LDA $53        ; Column count
C3/074F:	3A      	DEC A          ; Adjust value
C3/0750:	C54D    	CMP $4D        ; In range now?
C3/0752:	B00C    	BCS $0760      ; Branch if so

Fork: Invalid column (unused)
C3/0754:	A553    	LDA $53        ; ...
C3/0756:	3A      	DEC A          ; ...
C3/0757:	38      	SEC            ; Prepare SBC
C3/0758:	E551    	SBC $51        ; Minus 0...
C3/075A:	85E0    	STA $E0        ; Use col qty -1
C3/075C:	85E2    	STA $E2        ; Use last column
C3/075E:	8008    	BRA $0768      ; Validate row

Fork: Valid column
C3/0760:	A553    	LDA $53        ; Column count
C3/0762:	85E0    	STA $E0        ; Memorize it
C3/0764:	A54D    	LDA $4D        ; Cursor column
C3/0766:	85E2    	STA $E2        ; Memorize it

Fork: Validate row
C3/0768:	A554    	LDA $54        ; Number of rows
C3/076A:	3A      	DEC A          ; Adjust value
C3/076B:	C54E    	CMP $4E        ; In range now?
C3/076D:	B00A    	BCS $0779      ; Branch if so

Fork: Invalid row (unused)
C3/076F:	A554    	LDA $54        ; ...
C3/0771:	3A      	DEC A          ; ...
C3/0772:	38      	SEC            ; Prepare SBC
C3/0773:	E552    	SBC $52        ; Minus 0...
C3/0775:	85E1    	STA $E1        ; Force last row
C3/0777:	8004    	BRA $077D      ; Skip 2 lines

Fork: Valid row
C3/0779:	A54E    	LDA $4E        ; Cursor row
C3/077B:	85E1    	STA $E1        ; Memorize it
C3/077D:	AF124200	LDA $004212    ; PPU status
C3/0781:	2940    	AND #$40       ; H-Blank?
C3/0783:	F0F8    	BEQ $077D      ; Loop if not
C3/0785:	A5E0    	LDA $E0        ; Number of columns
C3/0787:	8D1B21  	STA $211B      ; Set matrix A LB
C3/078A:	9C1B21  	STZ $211B      ; Clear HB
C3/078D:	A5E1    	LDA $E1        ; Cursor row
C3/078F:	8D1C21  	STA $211C      ; Set matrix B
C3/0792:	8D1C21  	STA $211C      ; ...
C3/0795:	AD3421  	LDA $2134      ; Product LB
C3/0798:	18      	CLC            ; Prepare ADC
C3/0799:	65E2    	ADC $E2        ; Add column
C3/079B:	0A      	ASL A          ; Double it
C3/079C:	EB      	XBA            ; Switch to HB
C3/079D:	A500    	LDA $00        ; Clear it
C3/079F:	EB      	XBA            ; Switch to LB
C3/07A0:	A8      	TAY            ; Index it
C3/07A1:	B7E7    	LDA [$E7],Y    ; X position
C3/07A3:	8555    	STA $55        ; Set cursor's
C3/07A5:	6456    	STZ $56        ; Clear HB
C3/07A7:	C8      	INY            ; Index +1
C3/07A8:	B7E7    	LDA [$E7],Y    ; Y position
C3/07AA:	8557    	STA $57        ; Set cursor's
C3/07AC:	6458    	STZ $58        ; Clear HB
C3/07AE:	AB      	PLB            ; Restore DB
C3/07AF:	60      	RTS

Handle D-Pad for unscrollable list
C3/07B0:	A50B    	LDA $0B        ; Semi-auto keys
C3/07B2:	8908    	BIT #$08       ; Pushing up?
C3/07B4:	F01D    	BEQ $07D3      ; Branch if not
C3/07B6:	A54E    	LDA $4E        ; On top row?
C3/07B8:	D011    	BNE $07CB      ; Go up if not
C3/07BA:	A559    	LDA $59        ; Wrap flags
C3/07BC:	2901    	AND #$01       ; No V-Wrap?
C3/07BE:	D072    	BNE $0832      ; Exit if so
C3/07C0:	A554    	LDA $54        ; Bottom row
C3/07C2:	3A      	DEC A          ; Adjust value
C3/07C3:	854E    	STA $4E        ; Set cursor row
C3/07C5:	200E0F  	JSR $0F0E      ; Sound: Cursor
C3/07C8:	4C3208  	JMP $0832      ; Exit

Fork: Move cursor up
C3/07CB:	C64E    	DEC $4E        ; Cursor row -1
C3/07CD:	200E0F  	JSR $0F0E      ; Sound: Cursor
C3/07D0:	4C3208  	JMP $0832      ; Exit

Fork: Handle down
C3/07D3:	A50B    	LDA $0B        ; Semi-auto keys
C3/07D5:	8904    	BIT #$04       ; Pushing down?
C3/07D7:	F01D    	BEQ $07F6      ; Branch if not
C3/07D9:	A554    	LDA $54        ; Bottom row
C3/07DB:	3A      	DEC A          ; Adjust value
C3/07DC:	C54E    	CMP $4E        ; Cursor's there?
C3/07DE:	D00E    	BNE $07EE      ; Go down if not
C3/07E0:	A559    	LDA $59        ; Wrap flags
C3/07E2:	2901    	AND #$01       ; No V-Wrap?
C3/07E4:	D04C    	BNE $0832      ; Exit if so
C3/07E6:	644E    	STZ $4E        ; Cursor row: 1
C3/07E8:	200E0F  	JSR $0F0E      ; Sound: Cursor
C3/07EB:	4C3208  	JMP $0832      ; Exit

Fork: Move cursor down
C3/07EE:	E64E    	INC $4E        ; Cursor row +1
C3/07F0:	200E0F  	JSR $0F0E      ; Sound: Cursor
C3/07F3:	4C3208  	JMP $0832      ; Exit

Fork: Handle left
C3/07F6:	A50B    	LDA $0B        ; Semi-auto keys
C3/07F8:	8902    	BIT #$02       ; Pushing left?
C3/07FA:	F019    	BEQ $0815      ; Branch if not
C3/07FC:	A54D    	LDA $4D        ; On first column?
C3/07FE:	D00E    	BNE $080E      ; Go left if not
C3/0800:	A559    	LDA $59        ; H-Wrap disabled?
C3/0802:	302E    	BMI $0832      ; Exit if so
C3/0804:	A553    	LDA $53        ; Last column
C3/0806:	3A      	DEC A          ; Adjust value
C3/0807:	854D    	STA $4D        ; Set cursor column
C3/0809:	200E0F  	JSR $0F0E      ; Sound: Cursor
C3/080C:	8024    	BRA $0832      ; Exit

Fork: Move cursor left
C3/080E:	C64D    	DEC $4D        ; Cursor column -1
C3/0810:	200E0F  	JSR $0F0E      ; Sound: Cursor
C3/0813:	801D    	BRA $0832      ; Exit

Fork: Handle right
C3/0815:	A50B    	LDA $0B        ; Semi-auto keys
C3/0817:	8901    	BIT #$01       ; Pushing right?
C3/0819:	F017    	BEQ $0832      ; Exit if not
C3/081B:	A553    	LDA $53        ; Last column
C3/081D:	3A      	DEC A          ; Adjust value
C3/081E:	C54D    	CMP $4D        ; Cursor's there?
C3/0820:	D00B    	BNE $082D      ; Go right if not
C3/0822:	A559    	LDA $59        ; H-Wrap disabled?
C3/0824:	300C    	BMI $0832      ; Exit if so
C3/0826:	644D    	STZ $4D        ; Cursor column: 1
C3/0828:	200E0F  	JSR $0F0E      ; Sound: Cursor
C3/082B:	8005    	BRA $0832      ; Exit

Fork: Move cursor right
C3/082D:	E64D    	INC $4D        ; Cursor column +1
C3/082F:	200E0F  	JSR $0F0E      ; Sound: Cursor
C3/0832:	60      	RTS

Queue movable cursor's OAM function
C3/0833:	A901    	LDA #$01       ; Min slot: 8
C3/0835:	A03B08  	LDY #$083B     ; C3/083B
C3/0838:	4CDE11  	JMP $11DE      ; Queue OAM fn

Update movable cursor's sprite
C3/083B:	AA      	TAX            ; Index mode
C3/083C:	7C3F08  	JMP ($083F,X)  ; Handle mode

Jump table for the above
C3/083F:	4308    	; Initialize cursor
C3/0841:	5F08    	; Sustain cursor

Mode 0: Initialize cursor
C3/0843:	A62D    	LDX $2D        ; Queue index
C3/0845:	C220    	REP #$20       ; 16-bit A
C3/0847:	A91209  	LDA #$0912     ; Anim table ptr
C3/084A:	9DC932  	STA $32C9,X    ; Set sprite's
C3/084D:	E220    	SEP #$20       ; 8-bit A
C3/084F:	A9C3    	LDA #$C3       ; Bank: C3
C3/0851:	9DCA35  	STA $35CA,X    ; Set ptr HB
C3/0854:	207112  	JSR $1271      ; Set pose timer
C3/0857:	FE4936  	INC $3649,X    ; Mode +1
C3/085A:	A901    	LDA #$01       ; Pans with BG1
C3/085C:	9D4A36  	STA $364A,X    ; Set sprite flags

Mode 1: Sustain cursor
C3/085F:	A546    	LDA $46        ; Menu flags
C3/0861:	2906    	AND #$06       ; Remove cursors?
C3/0863:	F01B    	BEQ $0880      ; Delete if so
C3/0865:	A545    	LDA $45        ; Menu flags
C3/0867:	8904    	BIT #$04       ; Hide cursor?
C3/0869:	F013    	BEQ $087E      ; Exit if so
C3/086B:	A62D    	LDX $2D        ; Queue index
C3/086D:	C220    	REP #$20       ; 16-bit A
C3/086F:	A555    	LDA $55        ; Cursor's X
C3/0871:	9DCA33  	STA $33CA,X    ; Set sprite's
C3/0874:	A557    	LDA $57        ; Cursor's Y
C3/0876:	9D4A34  	STA $344A,X    ; Set sprite's
C3/0879:	E220    	SEP #$20       ; ...
C3/087B:	208C12  	JSR $128C      ; Define OAM
C3/087E:	38      	SEC            ; Set to requeue
C3/087F:	60      	RTS            ; Exit
C3/0880:	18      	CLC            ; Set to dequeue
C3/0881:	60      	RTS

Update blinking cursor marking prior choice
C3/0882:	AA      	TAX            ; Index mode
C3/0883:	7C8608  	JMP ($0886,X)  ; Handle mode

Jump table for the above
C3/0886:	8E08    	; Initialize cursor
C3/0888:	AE08    	; Sustain cursor V1
C3/088A:	8E08    	; Initialize cursor
C3/088C:	EC08    	; Sustain cursor V2

Mode 0 or 2: Initialize cursor
C3/088E:	A62D    	LDX $2D        ; Queue index
C3/0890:	A901    	LDA #$01       ; Blinkers V1: On
C3/0892:	0446    	TSB $46        ; Set menu flag
C3/0894:	C220    	REP #$20       ; 16-bit A
C3/0896:	A91B09  	LDA #$091B     ; Anim table ptr
C3/0899:	9DC932  	STA $32C9,X    ; Set sprite's
C3/089C:	E220    	SEP #$20       ; 8-bit A
C3/089E:	A9C3    	LDA #$C3       ; Bank: C3
C3/08A0:	9DCA35  	STA $35CA,X    ; Set ptr HB
C3/08A3:	207112  	JSR $1271      ; Set pose timer
C3/08A6:	A901    	LDA #$01       ; Pans with BG1
C3/08A8:	9D4A36  	STA $364A,X    ; Set sprite flags
C3/08AB:	FE4936  	INC $3649,X    ; Mode +1

Mode 1: Sustain cursor not in party area of Lineup menu
C3/08AE:	A546    	LDA $46        ; Menu flags
C3/08B0:	8901    	BIT #$01       ; Remove blinkers?
C3/08B2:	F036    	BEQ $08EA      ; Delete if so
C3/08B4:	A62D    	LDX $2D        ; Queue index
C3/08B6:	C220    	REP #$20       ; 16-bit A
C3/08B8:	A541    	LDA $41        ; List V-Speed
C3/08BA:	49FFFF  	EOR #$FFFF     ; Invert it
C3/08BD:	1A      	INC A          ; Add 1
C3/08BE:	18      	CLC            ; Prepare ADC
C3/08BF:	7D4A34  	ADC $344A,X    ; Add cursor's Y
C3/08C2:	9D4A34  	STA $344A,X    ; Set cursor's Y
C3/08C5:	E220    	SEP #$20       ; 8-bit A
C3/08C7:	A546    	LDA $46        ; Menu flags
C3/08C9:	29C0    	AND #$C0       ; Scrollable list?
C3/08CB:	F018    	BEQ $08E5      ; Display if not

Fork: Item menu
C3/08CD:	A528    	LDA $28        ; Blinker's slot
C3/08CF:	29FE    	AND #$FE       ; Get row x2
C3/08D1:	1A      	INC A          ; Add 1
C3/08D2:	85E0    	STA $E0        ; Memorize it
C3/08D4:	A54A    	LDA $4A        ; Top onscreen row
C3/08D6:	0A      	ASL A          ; Double it
C3/08D7:	18      	CLC            ; Prepare ADC
C3/08D8:	6913    	ADC #$13       ; Get bottom row
C3/08DA:	C5E0    	CMP $E0        ; Blinker's below?
C3/08DC:	900A    	BCC $08E8      ; Blank if so
C3/08DE:	A54A    	LDA $4A        ; Top onscreen row
C3/08E0:	0A      	ASL A          ; Double it
C3/08E1:	C5E0    	CMP $E0        ; Blinker's above?
C3/08E3:	B003    	BCS $08E8      ; Blank if so
C3/08E5:	208C12  	JSR $128C      ; Define OAM
C3/08E8:	38      	SEC            ; Set to requeue
C3/08E9:	60      	RTS            ; Exit
C3/08EA:	18      	CLC            ; Set to dequeue
C3/08EB:	60      	RTS

Mode 3: Sustain cursor in party area of Lineup menu
C3/08EC:	A546    	LDA $46        ; Menu flags
C3/08EE:	8901    	BIT #$01       ; Remove blinkers?
C3/08F0:	F0F8    	BEQ $08EA      ; Delete if so
C3/08F2:	A62D    	LDX $2D        ; Queue index
C3/08F4:	C220    	REP #$20       ; 16-bit A
C3/08F6:	A597    	LDA $97        ; Always 0...
C3/08F8:	49FFFF  	EOR #$FFFF     ; Invert it
C3/08FB:	1A      	INC A          ; Add 1
C3/08FC:	18      	CLC            ; Prepare ADC
C3/08FD:	7DCA33  	ADC $33CA,X    ; Add cursor's X
C3/0900:	9DCA33  	STA $33CA,X    ; Set cursor's X
C3/0903:	E220    	SEP #$20       ; 8-bit A
C3/0905:	BCCA33  	LDY $33CA,X    ; Cursor's X
C3/0908:	C00001  	CPY #$0100     ; Past east edge?
C3/090B:	B003    	BCS $0910      ; Blank if so
C3/090D:	208C12  	JSR $128C      ; Define OAM
C3/0910:	38      	SEC            ; Set to requeue
C3/0911:	60      	RTS

Animation table for main cursor
C3/0912:	1509    	; Sprite 1
C3/0914:	FE      	; Freeze

OAM for hand cursor
C3/0915:	01      	; Tiles: 1
C3/0916:	8000    	; 16x16, X+0, Y+0
C3/0918:	003E    	; Tile 0, pal 7, prio 3

OAM for blanking cursor
C3/091A:	00      	; Tiles: 0

Animation table for blinking cursor
C3/091B:	1509    	; Show cursor
C3/091D:	02      	; Frames: 2
C3/091E:	1A09    	; Hide cursor
C3/0920:	02      	; Frames: 2
C3/0921:	1509    	; Bogus...
C3/0923:	FF      	; Loop

Create a blinking cursor by every portrait
C3/0924:	7B      	TDC            ; Clear A
C3/0925:	AA      	TAX            ; Member: 1st
C3/0926:	B585    	LDA $85,X      ; Nobody here?
C3/0928:	F024    	BEQ $094E      ; Skip if so
C3/092A:	DA      	PHX            ; Save index
C3/092B:	A901    	LDA #$01       ; Min slot: 8
C3/092D:	A05609  	LDY #$0956     ; C3/0956
C3/0930:	20DE11  	JSR $11DE      ; Queue OAM fn
C3/0933:	9B      	TXY            ; Queue index
C3/0934:	FA      	PLX            ; Member index
C3/0935:	A97E    	LDA #$7E       ; Bank: 7E
C3/0937:	48      	PHA            ; Put on stack
C3/0938:	AB      	PLB            ; Set DB to 7E
C3/0939:	B585    	LDA $85,X      ; X position
C3/093B:	99CA33  	STA $33CA,Y    ; Set cursor's
C3/093E:	B586    	LDA $86,X      ; Y position
C3/0940:	994A34  	STA $344A,Y    ; Set cursor's
C3/0943:	7B      	TDC            ; Clear A
C3/0944:	99CB33  	STA $33CB,Y    ; ...
C3/0947:	994B34  	STA $344B,Y    ; ...
C3/094A:	A900    	LDA #$00       ; ...
C3/094C:	48      	PHA            ; Put on stack
C3/094D:	AB      	PLB            ; Set DB to 0
C3/094E:	E8      	INX            ; Char index +1
C3/094F:	E8      	INX            ; Char index +1
C3/0950:	E00800  	CPX #$0008     ; Done 4 chars?
C3/0953:	D0D1    	BNE $0926      ; Loop if not
C3/0955:	60      	RTS

Update blinking cursor not marking a prior choice
C3/0956:	AA      	TAX            ; Index mode
C3/0957:	7C5A09  	JMP ($095A,X)  ; Handle mode

Jump table for the above
C3/095A:	5E09    	; Initialize cursor
C3/095C:	7E09    	; Sustain cursor

Mode 0: Initialize cursor
C3/095E:	A62D    	LDX $2D        ; Queue index
C3/0960:	A908    	LDA #$08       ; Blinkers V2: On
C3/0962:	0446    	TSB $46        ; Set menu flag
C3/0964:	C220    	REP #$20       ; 16-bit A
C3/0966:	A91B09  	LDA #$091B     ; Anim table ptr
C3/0969:	9DC932  	STA $32C9,X    ; Set sprite's
C3/096C:	E220    	SEP #$20       ; 8-bit A
C3/096E:	A9C3    	LDA #$C3       ; Bank: C3
C3/0970:	9DCA35  	STA $35CA,X    ; Set ptr HB
C3/0973:	207112  	JSR $1271      ; Set pose timer
C3/0976:	FE4936  	INC $3649,X    ; Mode +1
C3/0979:	A901    	LDA #$01       ; Pans with BG1
C3/097B:	9D4A36  	STA $364A,X    ; Set sprite flags

Mode 1: Sustain cursor
C3/097E:	A546    	LDA $46        ; Menu flags
C3/0980:	8908    	BIT #$08       ; Remove blinkers?
C3/0982:	F007    	BEQ $098B      ; Delete if so
C3/0984:	A62D    	LDX $2D        ; Queue index
C3/0986:	208C12  	JSR $128C      ; Define OAM
C3/0989:	38      	SEC            ; Set to requeue
C3/098A:	60      	RTS            ; Exit
C3/098B:	18      	CLC            ; Set to dequeue
C3/098C:	60      	RTS

Update scrollbar animation index
C3/098D:	A9C0    	LDA #$C0       ; Flashing: 2-ways
C3/098F:	0446    	TSB $46        ; Initialize index
C3/0991:	A54A    	LDA $4A        ; At top of list?
C3/0993:	D004    	BNE $0999      ; Branch if not
C3/0995:	A940    	LDA #$40       ; Flashing: Down
C3/0997:	1446    	TRB $46        ; Update index
C3/0999:	A54A    	LDA $4A        ; Scroll position
C3/099B:	C55C    	CMP $5C        ; At very bottom?
C3/099D:	D004    	BNE $09A3      ; Exit if not
C3/099F:	A980    	LDA #$80       ; Flashing: Up
C3/09A1:	1446    	TRB $46        ; Update index
C3/09A3:	60      	RTS

Create a scrollbar on right side of screen
C3/09A4:	A903    	LDA #$03       ; Min slot: 24
C3/09A6:	A0CC09  	LDY #$09CC     ; C3/09CC
C3/09A9:	20DE11  	JSR $11DE      ; Queue OAM fn
C3/09AC:	C220    	REP #$20       ; 16-bit A
C3/09AE:	A9E800  	LDA #$00E8     ; X: 232
C3/09B1:	9FCA337E	STA $7E33CA,X  ; Set sprite's
C3/09B5:	E220    	SEP #$20       ; 8-bit A
C3/09B7:	60      	RTS

Create a scrollbar in middle of screen
C3/09B8:	A903    	LDA #$03       ; Min slot: 24
C3/09BA:	A0CC09  	LDY #$09CC     ; C3/09CC
C3/09BD:	20DE11  	JSR $11DE      ; Queue OAM fn
C3/09C0:	C220    	REP #$20       ; 16-bit A
C3/09C2:	A97000  	LDA #$0070     ; X: 112
C3/09C5:	9FCA337E	STA $7E33CA,X  ; Set sprite's
C3/09C9:	E220    	SEP #$20       ; 8-bit A
C3/09CB:	60      	RTS

Update scrollbar
C3/09CC:	AA      	TAX            ; Index mode
C3/09CD:	7CD009  	JMP ($09D0,X)  ; Handle mode

Jump table for the above
C3/09D0:	D409    	; Initialize scrollbar
C3/09D2:	EF09    	; Sustain scrollbar

Mode 0: Initialize scrollbar
C3/09D4:	A62D    	LDX $2D        ; Queue index
C3/09D6:	C220    	REP #$20       ; 16-bit A
C3/09D8:	A94E0A  	LDA #$0A4E     ; C3/0A4E
C3/09DB:	9DC932  	STA $32C9,X    ; Init anim ptr
C3/09DE:	E220    	SEP #$20       ; 8-bit A
C3/09E0:	A9C3    	LDA #$C3       ; Bank: C3
C3/09E2:	9DCA35  	STA $35CA,X    ; Set ptr HB
C3/09E5:	FE4936  	INC $3649,X    ; Mode +1
C3/09E8:	207112  	JSR $1271      ; Set pose timer
C3/09EB:	A9C0    	LDA #$C0       ; Flash: Both ways
C3/09ED:	0446    	TSB $46        ; Init anim index

Mode 1: Sustain scrollbar
C3/09EF:	A546    	LDA $46        ; Menu flags
C3/09F1:	29C0    	AND #$C0       ; Hide scrollbar?
C3/09F3:	F04F    	BEQ $0A44      ; Delete if so
C3/09F5:	A62D    	LDX $2D        ; Queue index
C3/09F7:	208D09  	JSR $098D      ; Set anim index
C3/09FA:	AF124200	LDA $004212    ; PPU status
C3/09FE:	2940    	AND #$40       ; H-Blank?
C3/0A00:	F0F8    	BEQ $09FA      ; Loop if not
C3/0A02:	BD4A35  	LDA $354A,X    ; V-Speed LB
C3/0A05:	8F1B2100	STA $00211B    ; Set matrix A LB
C3/0A09:	BD4B35  	LDA $354B,X    ; V-Speed HB
C3/0A0C:	8F1B2100	STA $00211B    ; Set matrix A HB
C3/0A10:	A54A    	LDA $4A        ; Scroll position
C3/0A12:	8F1C2100	STA $00211C    ; Set matrix B
C3/0A16:	8F1C2100	STA $00211C    ; ...
C3/0A1A:	7B      	TDC            ; Clear A
C3/0A1B:	AF352100	LDA $002135    ; Product MB
C3/0A1F:	C221    	REP #$21       ; 16-bit A; C-
C3/0A21:	7DCA34  	ADC $34CA,X    ; Add base Y
C3/0A24:	9D4A34  	STA $344A,X    ; Set bar's Y
C3/0A27:	E220    	SEP #$20       ; 8-bit A
C3/0A29:	A546    	LDA $46        ; Menu flags
C3/0A2B:	29C0    	AND #$C0       ; Anim index
C3/0A2D:	4A      	LSR A          ; Put in b5-b6
C3/0A2E:	4A      	LSR A          ; Put in b4-b5
C3/0A2F:	4A      	LSR A          ; Put in b3-b4
C3/0A30:	4A      	LSR A          ; Put in b2-b3
C3/0A31:	4A      	LSR A          ; Put in b1-b2
C3/0A32:	9B      	TXY            ; Queue index
C3/0A33:	AA      	TAX            ; Anim index
C3/0A34:	C220    	REP #$20       ; 16-bit A
C3/0A36:	BF460AC3	LDA $C30A46,X  ; Anim pointer
C3/0A3A:	99C932  	STA $32C9,Y    ; Set sprite's
C3/0A3D:	E220    	SEP #$20       ; ...
C3/0A3F:	208C12  	JSR $128C      ; Define OAM
C3/0A42:	38      	SEC            ; Set to requeue
C3/0A43:	60      	RTS            ; Exit
C3/0A44:	18      	CLC            ; Set to dequeue
C3/0A45:	60      	RTS

Pointers to scrollbar animation tables
C3/0A46:	4E0A    	; Bogus...
C3/0A48:	570A    	; Flashing up
C3/0A4A:	600A    	; Flashing down
C3/0A4C:	4E0A    	; Flashing both ways

Animation table for scrollbar flashing both ways
C3/0A4E:	690A    	; Flash neither
C3/0A50:	10      	; Frames: 16
C3/0A51:	720A    	; Flash both
C3/0A53:	10      	; Frames: 16
C3/0A54:	690A    	; Bogus...
C3/0A56:	FF      	; Loop

Animation table for scrollbar pointing up
C3/0A57:	690A    	; Flash neither
C3/0A59:	10      	; Frames: 16
C3/0A5A:	7B0A    	; Flash highest
C3/0A5C:	10      	; Frames: 16
C3/0A5D:	690A    	; Bogus...
C3/0A5F:	FF      	; Loop

Animation table for scrollbar pointing down
C3/0A60:	690A    	; Flash neither
C3/0A62:	10      	; Frames: 16
C3/0A63:	840A    	; Flash lowest
C3/0A65:	10      	; Frames: 16
C3/0A66:	690A    	; Bogus...
C3/0A68:	FF      	; Loop

OAM for non-flashing scrollbar
C3/0A69:	02      	; Tiles: 2
C3/0A6A:	0000023E	; ^: White
C3/0A6E:	000802BE	; v: White

OAM for scrollbar flashing both ways
C3/0A72:	02      	; Tiles: 2
C3/0A73:	0000123E	; ^: Black
C3/0A77:	000812BE	; v: Black

OAM for scrollbar pointing up
C3/0A7B:	02      	; Tiles: 2
C3/0A7C:	0000123E	; ^: Black
C3/0A80:	000802BE	; v: White

OAM for scrollbar pointing down
C3/0A84:	02      	; Tiles: 2
C3/0A85:	0000023E	; ^: White
C3/0A89:	000812BE	; v: Black

Create portrait for member 1
C3/0A8D:	A903    	LDA #$03       ; Min slot: 24
C3/0A8F:	A07D0B  	LDY #$0B7D     ; C3/0B7D
C3/0A92:	20DE11  	JSR $11DE      ; Queue OAM fn
C3/0A95:	8A      	TXA            ; Queue index
C3/0A96:	8560    	STA $60        ; Set sprite's
C3/0A98:	8B      	PHB            ; Save DB
C3/0A99:	A97E    	LDA #$7E       ; Bank: 7E
C3/0A9B:	48      	PHA            ; Put on stack
C3/0A9C:	AB      	PLB            ; Set DB to 7E
C3/0A9D:	A400    	LDY $00        ; Member slot: 1
C3/0A9F:	205C0B  	JSR $0B5C      ; Set base X loc
C3/0AA2:	A400    	LDY $00        ; Face slot: 1
C3/0AA4:	20370B  	JSR $0B37      ; Load anim ptr
C3/0AA7:	C220    	REP #$20       ; 16-bit A
C3/0AA9:	A91500  	LDA #$0015     ; Base Y: 21
C3/0AAC:	9D4A34  	STA $344A,X    ; Set sprite's
C3/0AAF:	E220    	SEP #$20       ; 8-bit A
C3/0AB1:	207112  	JSR $1271      ; Set pose timer
C3/0AB4:	AB      	PLB            ; Restore DB
C3/0AB5:	60      	RTS

Create portrait for member 2
C3/0AB6:	A903    	LDA #$03       ; Min slot: 24
C3/0AB8:	A07D0B  	LDY #$0B7D     ; C3/0B7D
C3/0ABB:	20DE11  	JSR $11DE      ; Queue OAM fn
C3/0ABE:	8A      	TXA            ; Queue index
C3/0ABF:	8561    	STA $61        ; Set sprite's
C3/0AC1:	8B      	PHB            ; Save DB
C3/0AC2:	A97E    	LDA #$7E       ; Bank: 7E
C3/0AC4:	48      	PHA            ; Put on stack
C3/0AC5:	AB      	PLB            ; Set DB to 7E
C3/0AC6:	A00100  	LDY #$0001     ; Member slot: 2
C3/0AC9:	205C0B  	JSR $0B5C      ; Set base X loc
C3/0ACC:	A00100  	LDY #$0001     ; Face slot: 2
C3/0ACF:	20370B  	JSR $0B37      ; Load anim ptr
C3/0AD2:	C220    	REP #$20       ; 16-bit A
C3/0AD4:	A94500  	LDA #$0045     ; Base Y: 69
C3/0AD7:	9D4A34  	STA $344A,X    ; Set sprite's
C3/0ADA:	E220    	SEP #$20       ; 8-bit A
C3/0ADC:	207112  	JSR $1271      ; Set pose timer
C3/0ADF:	AB      	PLB            ; Restore DB
C3/0AE0:	60      	RTS

Create portrait for member 3
C3/0AE1:	A903    	LDA #$03       ; Min slot: 24
C3/0AE3:	A07D0B  	LDY #$0B7D     ; C3/0B7D
C3/0AE6:	20DE11  	JSR $11DE      ; Queue OAM fn
C3/0AE9:	8A      	TXA            ; Queue index
C3/0AEA:	8562    	STA $62        ; Set sprite's
C3/0AEC:	8B      	PHB            ; Save DB
C3/0AED:	A97E    	LDA #$7E       ; Bank: 7E
C3/0AEF:	48      	PHA            ; Put on stack
C3/0AF0:	AB      	PLB            ; Set DB to 7E
C3/0AF1:	A00200  	LDY #$0002     ; Member slot: 3
C3/0AF4:	205C0B  	JSR $0B5C      ; Set base X loc
C3/0AF7:	A00200  	LDY #$0002     ; Face slot: 3
C3/0AFA:	20370B  	JSR $0B37      ; Load anim ptr
C3/0AFD:	C220    	REP #$20       ; 16-bit A
C3/0AFF:	A97500  	LDA #$0075     ; Base Y: 117
C3/0B02:	9D4A34  	STA $344A,X    ; Set sprite's
C3/0B05:	E220    	SEP #$20       ; 8-bit A
C3/0B07:	207112  	JSR $1271      ; Set pose timer
C3/0B0A:	AB      	PLB            ; Restore DB
C3/0B0B:	60      	RTS

Create portrait for member 4
C3/0B0C:	A903    	LDA #$03       ; Min slot: 24
C3/0B0E:	A07D0B  	LDY #$0B7D     ; C3/0B7D
C3/0B11:	20DE11  	JSR $11DE      ; Queue OAM fn
C3/0B14:	8A      	TXA            ; Queue index
C3/0B15:	8563    	STA $63        ; Set sprite's
C3/0B17:	8B      	PHB            ; Save DB
C3/0B18:	A97E    	LDA #$7E       ; Bank: 7E
C3/0B1A:	48      	PHA            ; Put on stack
C3/0B1B:	AB      	PLB            ; Set DB to 7E
C3/0B1C:	A00300  	LDY #$0003     ; Member slot: 4
C3/0B1F:	205C0B  	JSR $0B5C      ; Set base X loc
C3/0B22:	A00300  	LDY #$0003     ; Face slot: 4
C3/0B25:	20370B  	JSR $0B37      ; Load anim ptr
C3/0B28:	C220    	REP #$20       ; 16-bit A
C3/0B2A:	A9A500  	LDA #$00A5     ; Base Y: 165
C3/0B2D:	9D4A34  	STA $344A,X    ; Set sprite's
C3/0B30:	E220    	SEP #$20       ; 8-bit A
C3/0B32:	207112  	JSR $1271      ; Set pose timer
C3/0B35:	AB      	PLB            ; Restore DB
C3/0B36:	60      	RTS

Load pointer to animation table for portrait
C3/0B37:	DA      	PHX            ; Save index
C3/0B38:	DA      	PHX            ; Save index
C3/0B39:	BB      	TYX            ; Member slot
C3/0B3A:	B575    	LDA $75,X      ; Party info
C3/0B3C:	2918    	AND #$18       ; Roster slot
C3/0B3E:	4A      	LSR A          ; Put in b2-b3
C3/0B3F:	4A      	LSR A          ; Put in b1-b2
C3/0B40:	AA      	TAX            ; Index it
C3/0B41:	C220    	REP #$20       ; 16-bit A
C3/0B43:	BF540BC3	LDA $C30B54,X  ; Anim table ptr
C3/0B47:	7A      	PLY            ; Queue index
C3/0B48:	99C932  	STA $32C9,Y    ; Set ptr LBs
C3/0B4B:	E220    	SEP #$20       ; 8-bit A
C3/0B4D:	A9C3    	LDA #$C3       ; Bank: C3
C3/0B4F:	99CA35  	STA $35CA,Y    ; Set ptr HB
C3/0B52:	FA      	PLX            ; Queue index
C3/0B53:	60      	RTS

Pointers to portrait animation tables
C3/0B54:	F70B    	; Portrait A
C3/0B56:	2F0C    	; Portrait B
C3/0B58:	670C    	; Portrait C
C3/0B5A:	9F0C    	; Portrait D

Set portrait's base X position based on actor's row
C3/0B5C:	DA      	PHX            ; Queue index
C3/0B5D:	BB      	TYX            ; Member slot
C3/0B5E:	A902    	LDA #$02       ; Portrait bit
C3/0B60:	2445    	BIT $45        ; Ignore row?
C3/0B62:	D006    	BNE $0B6A      ; Branch if so
C3/0B64:	B575    	LDA $75,X      ; Party info
C3/0B66:	8920    	BIT #$20       ; In back row?
C3/0B68:	F007    	BEQ $0B71      ; Branch if not
C3/0B6A:	C220    	REP #$20       ; 16-bit A
C3/0B6C:	A91A00  	LDA #$001A     ; Base X: 26
C3/0B6F:	8005    	BRA $0B76      ; Skip 2 lines
C3/0B71:	C220    	REP #$20       ; 16-bit A
C3/0B73:	A90E00  	LDA #$000E     ; Base X: 15
C3/0B76:	FA      	PLX            ; Queue index
C3/0B77:	9DCA33  	STA $33CA,X    ; Set sprite's X
C3/0B7A:	E220    	SEP #$20       ; 8-bit A
C3/0B7C:	60      	RTS

Update actor portrait
C3/0B7D:	AA      	TAX            ; Index mode
C3/0B7E:	7C810B  	JMP ($0B81,X)  ; Handle mode

Jump table for the above
C3/0B81:	8B0B    	; Set to pan with BG1
C3/0B83:	950B    	; Sustain portrait
C3/0B85:	A30B    	; Set to shift right
C3/0B87:	B70B    	; Set to shift left
C3/0B89:	C90B    	; Shift left or right

Mode 0: Set to pan with BG1
C3/0B8B:	A62D    	LDX $2D        ; Queue index
C3/0B8D:	FE4936  	INC $3649,X    ; Mode +1
C3/0B90:	A901    	LDA #$01       ; Pans with BG1
C3/0B92:	9D4A36  	STA $364A,X    ; Set sprite flags

Mode 1: Sustain portrait
C3/0B95:	A62D    	LDX $2D        ; Queue index
C3/0B97:	BDC935  	LDA $35C9,X    ; Hide portrait?
C3/0B9A:	3005    	BMI $0BA1      ; Delete if so
C3/0B9C:	208C12  	JSR $128C      ; Define OAM
C3/0B9F:	38      	SEC            ; Set to requeue
C3/0BA0:	60      	RTS            ; Exit
C3/0BA1:	18      	CLC            ; Set to dequeue
C3/0BA2:	60      	RTS

Mode 2: Set to shift right
C3/0BA3:	A62D    	LDX $2D        ; Queue index
C3/0BA5:	C220    	REP #$20       ; 16-bit A
C3/0BA7:	A90100  	LDA #$0001     ; H-Speed: 1
C3/0BAA:	9DCA34  	STA $34CA,X    ; Set sprite's
C3/0BAD:	A90C00  	LDA #$000C     ; Frames: 12
C3/0BB0:	9D4933  	STA $3349,X    ; Set shift timer
C3/0BB3:	E220    	SEP #$20       ; 8-bit A
C3/0BB5:	8012    	BRA $0BC9      ; Shift once

Mode 3: Set to shift left
C3/0BB7:	A62D    	LDX $2D        ; Queue index
C3/0BB9:	C220    	REP #$20       ; 16-bit A
C3/0BBB:	A9FFFF  	LDA #$FFFF     ; H-Speed: -1
C3/0BBE:	9DCA34  	STA $34CA,X    ; Set sprite's
C3/0BC1:	A90C00  	LDA #$000C     ; Frames: 12
C3/0BC4:	9D4933  	STA $3349,X    ; Set shift timer
C3/0BC7:	E220    	SEP #$20       ; 8-bit A

Mode 4: Shift left or right
C3/0BC9:	A62D    	LDX $2D        ; Queue index
C3/0BCB:	A904    	LDA #$04       ; Mode: 4
C3/0BCD:	9D4936  	STA $3649,X    ; Set sprite's
C3/0BD0:	C220    	REP #$20       ; 16-bit A
C3/0BD2:	BD4933  	LDA $3349,X    ; Timer expired?
C3/0BD5:	F014    	BEQ $0BEB      ; Freeze if so
C3/0BD7:	BDCA34  	LDA $34CA,X    ; H-Speed
C3/0BDA:	18      	CLC            ; Prepare ADC
C3/0BDB:	7DCA33  	ADC $33CA,X    ; Add base X
C3/0BDE:	9DCA33  	STA $33CA,X    ; Set sprite's
C3/0BE1:	DE4933  	DEC $3349,X    ; Timer -1
C3/0BE4:	E220    	SEP #$20       ; ...
C3/0BE6:	208C12  	JSR $128C      ; Define OAM
C3/0BE9:	38      	SEC            ; Set to requeue
C3/0BEA:	60      	RTS

Fork: Set to stop moving
C3/0BEB:	E220    	SEP #$20       ; 8-bit A
C3/0BED:	A901    	LDA #$01       ; Mode: 1
C3/0BEF:	9D4936  	STA $3649,X    ; Set sprite's
C3/0BF2:	208C12  	JSR $128C      ; Define OAM
C3/0BF5:	38      	SEC            ; Set to requeue
C3/0BF6:	60      	RTS

Animation table for portrait A
C3/0BF7:	FA0B    	; Show portrait
C3/0BF9:	FE      	; Freeze

OAM for portrait A
C3/0BFA:	0D      	; Tiles: 13
C3/0BFB:	80006020	; Tile 1
C3/0BFF:	90006220	; Tile 2
C3/0C03:	80106420	; Tile 3
C3/0C07:	90106620	; Tile 4
C3/0C0B:	20006820	; Tile 5
C3/0C0F:	20086920	; Tile 6
C3/0C13:	20106A20	; Tile 7
C3/0C17:	20186B20	; Tile 8
C3/0C1B:	20206C20	; Tile 9
C3/0C1F:	00206D20	; Tile 10
C3/0C23:	08206E20	; Tile 11
C3/0C27:	10206F20	; Tile 12
C3/0C2B:	18207820	; Tile 13

Animation table for portrait B
C3/0C2F:	320C    	; Show portrait
C3/0C31:	FE      	; Freeze

OAM for portrait B
C3/0C32:	0D      	; Tiles: 13
C3/0C33:	80008022	; Tile 1
C3/0C37:	90008222	; Tile 2
C3/0C3B:	80108422	; Tile 3
C3/0C3F:	90108622	; Tile 4
C3/0C43:	20008822	; Tile 5
C3/0C47:	20088922	; Tile 6
C3/0C4B:	20108A22	; Tile 7
C3/0C4F:	20188B22	; Tile 8
C3/0C53:	20208C22	; Tile 9
C3/0C57:	00208D22	; Tile 10
C3/0C5B:	08208E22	; Tile 11
C3/0C5F:	10208F22	; Tile 12
C3/0C63:	18209822	; Tile 13

Animation table for portrait C
C3/0C67:	6A0C    	; Show portrait
C3/0C69:	FE      	; Freeze

OAM for portrait C
C3/0C6A:	0D      	; Tiles: 13
C3/0C6B:	8000A024	; Tile 1
C3/0C6F:	9000A224	; Tile 2
C3/0C73:	8010A424	; Tile 3
C3/0C77:	9010A624	; Tile 4
C3/0C7B:	2000A824	; Tile 5
C3/0C7F:	2008A924	; Tile 6
C3/0C83:	2010AA24	; Tile 7
C3/0C87:	2018AB24	; Tile 8
C3/0C8B:	2020AC24	; Tile 9
C3/0C8F:	0020AD24	; Tile 10
C3/0C93:	0820AE24	; Tile 11
C3/0C97:	1020AF24	; Tile 12
C3/0C9B:	1820B824	; Tile 13

Animation table for portrait D
C3/0C9F:	A20C    	; Show portrait
C3/0CA1:	FE      	; Freeze

OAM for portrait D
C3/0CA2:	0D      	; Tiles: 13
C3/0CA3:	8000C026	; Tile 1
C3/0CA7:	9000C226	; Tile 2
C3/0CAB:	8010C426	; Tile 3
C3/0CAF:	9010C626	; Tile 4
C3/0CB3:	2000C826	; Tile 5
C3/0CB7:	2008C926	; Tile 6
C3/0CBB:	2010CA26	; Tile 7
C3/0CBF:	2018CB26	; Tile 8
C3/0CC3:	2020CC26	; Tile 9
C3/0CC7:	0020CD26	; Tile 10
C3/0CCB:	0820CE26	; Tile 11
C3/0CCF:	1020CF26	; Tile 12
C3/0CD3:	1820D826	; Tile 13

Draw member's level, HP, and MP
C3/0CD7:	86EF    	STX $EF        ; Pos tbl ptr LBs
C3/0CD9:	A9C3    	LDA #$C3       ; Bank: C3
C3/0CDB:	85F1    	STA $F1        ; Set ptr HB
C3/0CDD:	A667    	LDX $67        ; Actor address
C3/0CDF:	BD0800  	LDA $0008,X    ; Level
C3/0CE2:	206305  	JSR $0563      ; Turn into text
C3/0CE5:	C220    	REP #$20       ; 16-bit A
C3/0CE7:	A7EF    	LDA [$EF]      ; Tilemap ptr
C3/0CE9:	AA      	TAX            ; Move it to X
C3/0CEA:	E220    	SEP #$20       ; 8-bit A
C3/0CEC:	203905  	JSR $0539      ; Draw level
C3/0CEF:	A667    	LDX $67        ; Actor address
C3/0CF1:	BD0B00  	LDA $000B,X    ; Max HP LB
C3/0CF4:	85F3    	STA $F3        ; Memorize it
C3/0CF6:	BD0C00  	LDA $000C,X    ; Max HP HB
C3/0CF9:	85F4    	STA $F4        ; Memorize it
C3/0CFB:	20D00D  	JSR $0DD0      ; Add gear bonus
C3/0CFE:	20FD0D  	JSR $0DFD      ; Cap at 9999
C3/0D01:	20B105  	JSR $05B1      ; Turn into text
C3/0D04:	A00400  	LDY #$0004     ; Map ptr index
C3/0D07:	208C0D  	JSR $0D8C      ; Draw max HP
C3/0D0A:	A467    	LDY $67        ; Actor address
C3/0D0C:	20352C  	JSR $2C35      ; Truncate HP
C3/0D0F:	B90900  	LDA $0009,Y    ; HP LB
C3/0D12:	85F3    	STA $F3        ; Memorize it
C3/0D14:	B90A00  	LDA $000A,Y    ; HP HB
C3/0D17:	85F4    	STA $F4        ; Memorize it
C3/0D19:	20B105  	JSR $05B1      ; Turn into text
C3/0D1C:	A00200  	LDY #$0002     ; Map ptr index
C3/0D1F:	208C0D  	JSR $0D8C      ; Draw HP
C3/0D22:	20960D  	JSR $0D96      ; Can use magic?
C3/0D25:	9033    	BCC $0D5A      ; Hide MP if not
C3/0D27:	A667    	LDX $67        ; Actor address
C3/0D29:	BD0F00  	LDA $000F,X    ; Max MP LB
C3/0D2C:	85F3    	STA $F3        ; Memorize it
C3/0D2E:	BD1000  	LDA $0010,X    ; Max MP HB
C3/0D31:	85F4    	STA $F4        ; Memorize it
C3/0D33:	20D00D  	JSR $0DD0      ; Add gear bonus
C3/0D36:	200A0E  	JSR $0E0A      ; Cap at 999
C3/0D39:	20B105  	JSR $05B1      ; Turn into text
C3/0D3C:	A00800  	LDY #$0008     ; Map ptr index
C3/0D3F:	208C0D  	JSR $0D8C      ; Draw max MP
C3/0D42:	A467    	LDY $67        ; Actor address
C3/0D44:	20572C  	JSR $2C57      ; Truncate MP
C3/0D47:	B90D00  	LDA $000D,Y    ; MP LB
C3/0D4A:	85F3    	STA $F3        ; Memorize it
C3/0D4C:	B90E00  	LDA $000E,Y    ; MP HB
C3/0D4F:	85F4    	STA $F4        ; Memorize it
C3/0D51:	20B105  	JSR $05B1      ; Turn into text
C3/0D54:	A00600  	LDY #$0006     ; Map ptr index
C3/0D57:	4C8C0D  	JMP $0D8C      ; Draw MP

Fork: Hide MP
C3/0D5A:	A28B9E  	LDX #$9E8B     ; 7E/9E8B
C3/0D5D:	8E8121  	STX $2181      ; Set WRAM LBs
C3/0D60:	C220    	REP #$20       ; 16-bit A
C3/0D62:	A00600  	LDY #$0006     ; Point to MP ptr
C3/0D65:	B7EF    	LDA [$EF],Y    ; Tilemap ptr
C3/0D67:	38      	SEC            ; Prepare SBC
C3/0D68:	E90600  	SBC #$0006     ; Point to "MP"
C3/0D6B:	8F899E7E	STA $7E9E89    ; Set position
C3/0D6F:	E220    	SEP #$20       ; 8-bit A
C3/0D71:	A20C00  	LDX #$000C     ; Letters: 12
C3/0D74:	A9FF    	LDA #$FF       ; Space char
C3/0D76:	8D8021  	STA $2180      ; Add to string
C3/0D79:	CA      	DEX            ; One less left
C3/0D7A:	D0FA    	BNE $0D76      ; Loop till last
C3/0D7C:	9C8021  	STZ $2180      ; End string
C3/0D7F:	A0899E  	LDY #$9E89     ; 7E/9E89
C3/0D82:	84E7    	STY $E7        ; Set src LBs
C3/0D84:	A97E    	LDA #$7E       ; Bank: 7E
C3/0D86:	85E9    	STA $E9        ; Set src HB
C3/0D88:	20FF02  	JSR $02FF      ; Draw 12 spaces
C3/0D8B:	60      	RTS

Draw member's current or max HP or MP
C3/0D8C:	C220    	REP #$20       ; 16-bit A
C3/0D8E:	B7EF    	LDA [$EF],Y    ; Tilemap ptr
C3/0D90:	AA      	TAX            ; Move it to X
C3/0D91:	E220    	SEP #$20       ; 8-bit A
C3/0D93:	4C1305  	JMP $0513      ; Draw 4 digits

Determine whether actor can use magic
C3/0D96:	AD691A  	LDA $1A69      ; Espers LB
C3/0D99:	0D6A1A  	ORA $1A6A      ; Add byte 2
C3/0D9C:	0D6B1A  	ORA $1A6B      ; Add byte 3
C3/0D9F:	0D6C1A  	ORA $1A6C      ; Add byte 4
C3/0DA2:	D02A    	BNE $0DCE      ; OK if got any
C3/0DA4:	A667    	LDX $67        ; Actor's address
C3/0DA6:	7B      	TDC            ; Clear A
C3/0DA7:	BD0000  	LDA $0000,X    ; Actor
C3/0DAA:	C90C    	CMP #$0C       ; Gogo?
C3/0DAC:	F020    	BEQ $0DCE      ; Allow if so
C3/0DAE:	B01C    	BCS $0DCC      ; Deny Umaro/guest
C3/0DB0:	8D0242  	STA $4202      ; Set multiplicand
C3/0DB3:	A936    	LDA #$36       ; Spell list length
C3/0DB5:	8D0342  	STA $4203      ; Set multiplier
C3/0DB8:	EA      	NOP
C3/0DB9:	EA      	NOP
C3/0DBA:	EA      	NOP
C3/0DBB:	A03600  	LDY #$0036     ; Spells left: 54
C3/0DBE:	AE1642  	LDX $4216      ; Index product
C3/0DC1:	BD6E1A  	LDA $1A6E,X    ; Spell mastery
C3/0DC4:	C9FF    	CMP #$FF       ; Fully learned?
C3/0DC6:	F006    	BEQ $0DCE      ; Allow if so
C3/0DC8:	E8      	INX            ; Point to next
C3/0DC9:	88      	DEY            ; One less left
C3/0DCA:	D0F5    	BNE $0DC1      ; Loop till last
C3/0DCC:	18      	CLC            ; Access: No
C3/0DCD:	60      	RTS            ; Exit
C3/0DCE:	38      	SEC            ; Access: Yes
C3/0DCF:	60      	RTS

Determine max HP or MP with gear bonus
C3/0DD0:	C220    	REP #$20       ; 16-bit A
C3/0DD2:	A5F3    	LDA $F3        ; Max HP or MP
C3/0DD4:	29FF3F  	AND #$3FFF     ; Clear flags
C3/0DD7:	85E7    	STA $E7        ; Memorize value
C3/0DD9:	A5F3    	LDA $F3        ; Max HP or MP
C3/0DDB:	2900C0  	AND #$C000     ; Get bonus flags
C3/0DDE:	18      	CLC            ; Prepare ROL
C3/0DDF:	2A      	ROL A          ; Put in b7 & C
C3/0DE0:	2A      	ROL A          ; Put in C & b0
C3/0DE1:	2A      	ROL A          ; Put in b0-b1
C3/0DE2:	2A      	ROL A          ; Put in b1-b2
C3/0DE3:	AA      	TAX            ; Index them
C3/0DE4:	A5E7    	LDA $E7        ; Max HP or MP
C3/0DE6:	7CE90D  	JMP ($0DE9,X)  ; Apply bonus

Jump table for the above
C3/0DE9:	F10D    	; No bonus
C3/0DEB:	F30D    	; HP or MP + 25%
C3/0DED:	F40D    	; HP or MP + 50%
C3/0DEF:	F20D    	; HP or MP + 12.5%

Boost max HP or MP based on entry point
C3/0DF1:	7B      	TDC            ; Clear bonus
C3/0DF2:	4A      	LSR A          ; Halve bonus
C3/0DF3:	4A      	LSR A          ; Halve bonus
C3/0DF4:	4A      	LSR A          ; Halve bonus
C3/0DF5:	18      	CLC            ; Prepare ADC
C3/0DF6:	65E7    	ADC $E7        ; Add max value
C3/0DF8:	85F3    	STA $F3        ; Memorize sum
C3/0DFA:	E220    	SEP #$20       ; 8-bit A
C3/0DFC:	60      	RTS

Enforce HP cap
C3/0DFD:	A6F3    	LDX $F3        ; Max HP
C3/0DFF:	E01027  	CPX #$2710     ; Under 10000?
C3/0E02:	9005    	BCC $0E09      ; Exit if so
C3/0E04:	A20F27  	LDX #$270F     ; Enforce 9999
C3/0E07:	86F3    	STX $F3        ; Save changes
C3/0E09:	60      	RTS

Enforce MP cap
C3/0E0A:	A6F3    	LDX $F3        ; Max MP
C3/0E0C:	E0E803  	CPX #$03E8     ; Under 1000?
C3/0E0F:	9005    	BCC $0E16      ; Exit if so
C3/0E11:	A2E703  	LDX #$03E7     ; Enforce 999
C3/0E14:	86F3    	STX $F3        ; Save changes
C3/0E16:	60      	RTS

Restore cursor position in inventory
C3/0E17:	AC2F02  	LDY $022F      ; Old list pos
C3/0E1A:	844F    	STY $4F        ; Set as current
C3/0E1C:	A54F    	LDA $4F        ; List column
C3/0E1E:	854D    	STA $4D        ; Set as onscreen
C3/0E20:	AD3102  	LDA $0231      ; Old scroll pos
C3/0E23:	8064    	BRA $0E89      ; Restore it, etc.

Interchange cursor memory for swapped members
C3/0E25:	7B      	TDC            ; Clear A
C3/0E26:	A54B    	LDA $4B        ; Chosen slot B
C3/0E28:	0A      	ASL A          ; Double it
C3/0E29:	AA      	TAX            ; Index it
C3/0E2A:	A528    	LDA $28        ; Chosen slot A
C3/0E2C:	0A      	ASL A          ; Double it
C3/0E2D:	A8      	TAY            ; Index it
C3/0E2E:	C220    	REP #$20       ; 16-bit A
C3/0E30:	BD3602  	LDA $0236,X    ; B's Skills pos
C3/0E33:	85E7    	STA $E7        ; Memorize it
C3/0E35:	B93602  	LDA $0236,Y    ; A's Skills pos
C3/0E38:	9D3602  	STA $0236,X    ; Set as B's
C3/0E3B:	A5E7    	LDA $E7        ; B's Skills pos
C3/0E3D:	993602  	STA $0236,Y    ; Set as A's
C3/0E40:	BD3E02  	LDA $023E,X    ; B's Magic pos
C3/0E43:	85E7    	STA $E7        ; Memorize it
C3/0E45:	B93E02  	LDA $023E,Y    ; A's Magic pos
C3/0E48:	9D3E02  	STA $023E,X    ; Set as B's
C3/0E4B:	A5E7    	LDA $E7        ; B's Magic pos
C3/0E4D:	993E02  	STA $023E,Y    ; Set as A's
C3/0E50:	E220    	SEP #$20       ; 8-bit A
C3/0E52:	7B      	TDC            ; Clear A
C3/0E53:	A54B    	LDA $4B        ; Chosen slot B
C3/0E55:	AA      	TAX            ; Index it
C3/0E56:	A528    	LDA $28        ; Chosen slot A
C3/0E58:	A8      	TAY            ; Index it
C3/0E59:	BD4602  	LDA $0246,X    ; B's Magic bar
C3/0E5C:	85E0    	STA $E0        ; Memorize pos
C3/0E5E:	B94602  	LDA $0246,Y    ; A's Magic bar
C3/0E61:	9D4602  	STA $0246,X    ; Set as B's
C3/0E64:	A5E0    	LDA $E0        ; B's Magic bar
C3/0E66:	994602  	STA $0246,Y    ; Set as A's
C3/0E69:	60      	RTS

Restore cursor position in Skills menu
C3/0E6A:	7B      	TDC            ; Clear A
C3/0E6B:	A528    	LDA $28        ; Member slot
C3/0E6D:	0A      	ASL A          ; Double it
C3/0E6E:	AA      	TAX            ; Index it
C3/0E6F:	BC3602  	LDY $0236,X    ; Former position
C3/0E72:	844D    	STY $4D        ; Set as current
C3/0E74:	60      	RTS

Restore cursor position in Magic menu
C3/0E75:	7B      	TDC            ; Clear A
C3/0E76:	A528    	LDA $28        ; Member slot
C3/0E78:	0A      	ASL A          ; Double it
C3/0E79:	AA      	TAX            ; Index it
C3/0E7A:	BC3E02  	LDY $023E,X    ; Old list pos
C3/0E7D:	844F    	STY $4F        ; Set as current
C3/0E7F:	A54F    	LDA $4F        ; List column
C3/0E81:	854D    	STA $4D        ; Set as onscreen
C3/0E83:	A528    	LDA $28        ; Member slot
C3/0E85:	AA      	TAX            ; Index it
C3/0E86:	BD4602  	LDA $0246,X    ; Old scroll pos
C3/0E89:	854A    	STA $4A        ; Set as current
C3/0E8B:	A550    	LDA $50        ; List row
C3/0E8D:	38      	SEC            ; Prepare SBC
C3/0E8E:	E54A    	SBC $4A        ; Sub scroll pos
C3/0E90:	854E    	STA $4E        ; Set onscreen row
C3/0E92:	60      	RTS

Upload BG1 tilemaps A and B
C3/0E93:	A00000  	LDY #$0000     ; $0000
C3/0E96:	8C1621  	STY $2116      ; Set VRAM ptr
C3/0E99:	A04938  	LDY #$3849     ; 7E/3849
C3/0E9C:	8C0243  	STY $4302      ; Set src LBs
C3/0E9F:	8052    	BRA $0EF3      ; Move data

Upload BG1 tilemaps B and C
C3/0EA1:	A00004  	LDY #$0400     ; $0400
C3/0EA4:	8C1621  	STY $2116      ; Set VRAM ptr
C3/0EA7:	A04940  	LDY #$4049     ; 7E/4049
C3/0EAA:	8C0243  	STY $4302      ; Set src LBs
C3/0EAD:	8044    	BRA $0EF3      ; Move data

Upload BG1 tilemaps C and D
C3/0EAF:	A00008  	LDY #$0800     ; $0800
C3/0EB2:	8C1621  	STY $2116      ; Set VRAM ptr
C3/0EB5:	A04948  	LDY #$4849     ; 7E/4849
C3/0EB8:	8C0243  	STY $4302      ; Set src LBs
C3/0EBB:	8036    	BRA $0EF3      ; Move data

Upload BG2 tilemaps A and B
C3/0EBD:	A00010  	LDY #$1000     ; $1000
C3/0EC0:	8C1621  	STY $2116      ; Set VRAM ptr
C3/0EC3:	A04958  	LDY #$5849     ; 7E/5849
C3/0EC6:	8C0243  	STY $4302      ; Set src LBs
C3/0EC9:	8028    	BRA $0EF3      ; Move data

Upload BG2 tilemaps C and D
C3/0ECB:	A00018  	LDY #$1800     ; $1800
C3/0ECE:	8C1621  	STY $2116      ; Set VRAM ptr
C3/0ED1:	A04968  	LDY #$6849     ; 7E/6849
C3/0ED4:	8C0243  	STY $4302      ; Set src LBs
C3/0ED7:	801A    	BRA $0EF3      ; Move data

Upload BG3 tilemaps A and B
C3/0ED9:	A00040  	LDY #$4000     ; $4000
C3/0EDC:	8C1621  	STY $2116      ; Set VRAM ptr
C3/0EDF:	A04978  	LDY #$7849     ; 7E/7849
C3/0EE2:	8C0243  	STY $4302      ; Set src LBs
C3/0EE5:	800C    	BRA $0EF3      ; Move data

Upload BG3 tilemaps C and D
C3/0EE7:	A00048  	LDY #$4800     ; $4800
C3/0EEA:	8C1621  	STY $2116      ; Set VRAM ptr
C3/0EED:	A04988  	LDY #$8849     ; 7E/8849
C3/0EF0:	8C0243  	STY $4302      ; Set src LBs
C3/0EF3:	A901    	LDA #$01       ; 2Rx1B to PPU
C3/0EF5:	8D0043  	STA $4300      ; Set DMA mode
C3/0EF8:	A918    	LDA #$18       ; $2118
C3/0EFA:	8D0143  	STA $4301      ; To VRAM
C3/0EFD:	A97E    	LDA #$7E       ; Bank: 7E
C3/0EFF:	8D0443  	STA $4304      ; Set src HB
C3/0F02:	A00010  	LDY #$1000     ; Bytes: 4096
C3/0F05:	8C0543  	STY $4305      ; Set data size
C3/0F08:	A901    	LDA #$01       ; Channel: 0
C3/0F0A:	8D0B42  	STA $420B      ; Move data
C3/0F0D:	60      	RTS

Play cursor sound
C3/0F0E:	A5AE    	LDA $AE        ; Started sound
C3/0F10:	C921    	CMP #$21       ; Cursor's?
C3/0F12:	F008    	BEQ $0F1C      ; Exit if so
C3/0F14:	A921    	LDA #$21       ; APU command
C3/0F16:	85AE    	STA $AE        ; Prevent repeat
C3/0F18:	8F402100	STA $002140    ; Set I/O port 0
C3/0F1C:	60      	RTS

Play click sound
C3/0F1D:	A920    	LDA #$20       ; APU command
C3/0F1F:	8F402100	STA $002140    ; Set I/O port 0
C3/0F23:	60      	RTS

Play save sound
C3/0F24:	A923    	LDA #$23       ; APU command
C3/0F26:	8F402100	STA $002140    ; Set I/O port 0
C3/0F2A:	60      	RTS

Play buzzer sound
C3/0F2B:	A922    	LDA #$22       ; APU command
C3/0F2D:	8F402100	STA $002140    ; Set I/O port 0
C3/0F31:	60      	RTS

Play letter deletion sound
C3/0F32:	A924    	LDA #$24       ; APU command
C3/0F34:	8F402100	STA $002140    ; Set I/O port 0
C3/0F38:	60      	RTS

Play cash register sound
C3/0F39:	A9BF    	LDA #$BF       ; Sound number
C3/0F3B:	8F011300	STA $001301    ; Set I/O port 1
C3/0F3F:	A918    	LDA #$18       ; APU command
C3/0F41:	8F001300	STA $001300    ; Set I/O port 0
C3/0F45:	A980    	LDA #$80       ; Volume specs
C3/0F47:	8F021300	STA $001302    ; Set I/O port 2
C3/0F4B:	220400C5	JSL $C50004    ; Update ports
C3/0F4F:	60      	RTS

Play recovery sound
C3/0F50:	A9C5    	LDA #$C5       ; Sound number
C3/0F52:	80E7    	BRA $0F3B      ; Set vol, etc.

Set to upload BG1 tilemaps A and B
C3/0F54:	A00000  	LDY #$0000     ; $0000
C3/0F57:	8414    	STY $14        ; Set VRAM ptr
C3/0F59:	A04938  	LDY #$3849     ; 7E/3849
C3/0F5C:	8416    	STY $16        ; Set src LBs
C3/0F5E:	A97E    	LDA #$7E       ; Bank: 7E
C3/0F60:	8518    	STA $18        ; Set src HB
C3/0F62:	A00010  	LDY #$1000     ; Bytes: 4096
C3/0F65:	8412    	STY $12        ; Set data size
C3/0F67:	60      	RTS

Set to upload BG1 tilemap A
C3/0F68:	A00000  	LDY #$0000     ; $0000
C3/0F6B:	8414    	STY $14        ; Set VRAM ptr
C3/0F6D:	A04938  	LDY #$3849     ; 7E/3849
C3/0F70:	8416    	STY $16        ; Set src LBs
C3/0F72:	A97E    	LDA #$7E       ; Bank: 7E
C3/0F74:	8518    	STA $18        ; Set src HB
C3/0F76:	A00008  	LDY #$0800     ; Bytes: 2048
C3/0F79:	8412    	STY $12        ; Set data size
C3/0F7B:	60      	RTS

Set to upload BG1 tilemap B
C3/0F7C:	A00004  	LDY #$0400     ; $0400
C3/0F7F:	8414    	STY $14        ; Set VRAM ptr
C3/0F81:	A04940  	LDY #$4049     ; 7E/4049
C3/0F84:	8416    	STY $16        ; Set src LBs
C3/0F86:	A97E    	LDA #$7E       ; Bank: 7E
C3/0F88:	8518    	STA $18        ; Set src HB
C3/0F8A:	A00008  	LDY #$0800     ; Bytes: 2048
C3/0F8D:	8412    	STY $12        ; Set data size
C3/0F8F:	60      	RTS

Set to upload BG3 tilemaps A and B
C3/0F90:	A00040  	LDY #$4000     ; $4000
C3/0F93:	8414    	STY $14        ; Set VRAM ptr
C3/0F95:	A04978  	LDY #$7849     ; 7E/7849
C3/0F98:	8416    	STY $16        ; Set src LBs
C3/0F9A:	A97E    	LDA #$7E       ; Bank: 7E
C3/0F9C:	8518    	STA $18        ; Set src HB
C3/0F9E:	A00010  	LDY #$1000     ; Bytes: 4096
C3/0FA1:	8412    	STY $12        ; Set data size
C3/0FA3:	60      	RTS

Set to upload BG3 tilemap A (version 1)
C3/0FA4:	A00040  	LDY #$4000     ; $4000
C3/0FA7:	8414    	STY $14        ; Set VRAM ptr
C3/0FA9:	A04978  	LDY #$7849     ; 7E/7849
C3/0FAC:	8416    	STY $16        ; Set src LBs
C3/0FAE:	A97E    	LDA #$7E       ; Bank: 7E
C3/0FB0:	8518    	STA $18        ; Set src HB
C3/0FB2:	A00008  	LDY #$0800     ; Bytes: 2048
C3/0FB5:	8412    	STY $12        ; Set data size
C3/0FB7:	60      	RTS

Set to upload BG3 tilemap B (version 1)
C3/0FB8:	A00044  	LDY #$4400     ; $4400
C3/0FBB:	8414    	STY $14        ; Set VRAM ptr
C3/0FBD:	A04980  	LDY #$8049     ; 7E/8049
C3/0FC0:	8416    	STY $16        ; Set src LBs
C3/0FC2:	A97E    	LDA #$7E       ; Bank: 7E
C3/0FC4:	8518    	STA $18        ; Set src HB
C3/0FC6:	A00008  	LDY #$0800     ; Bytes: 2048
C3/0FC9:	8412    	STY $12        ; Set data size
C3/0FCB:	60      	RTS

Set to upload BG3 tilemap A (version 2)
C3/0FCC:	A00040  	LDY #$4000     ; $4000
C3/0FCF:	841B    	STY $1B        ; Set VRAM ptr
C3/0FD1:	A04978  	LDY #$7849     ; 7E/7849
C3/0FD4:	841D    	STY $1D        ; Set src LBs
C3/0FD6:	A97E    	LDA #$7E       ; Bank: 7E
C3/0FD8:	851F    	STA $1F        ; Set src HB
C3/0FDA:	A00008  	LDY #$0800     ; Bytes: 2048
C3/0FDD:	8419    	STY $19        ; Set data size
C3/0FDF:	60      	RTS

Set to upload BG3 tilemap B (version 2)
C3/0FE0:	A00044  	LDY #$4400     ; $4400
C3/0FE3:	841B    	STY $1B        ; Set VRAM ptr
C3/0FE5:	A04980  	LDY #$8049     ; 7E/8049
C3/0FE8:	841D    	STY $1D        ; Set src LBs
C3/0FEA:	A97E    	LDA #$7E       ; Bank: 7E
C3/0FEC:	851F    	STA $1F        ; Set src HB
C3/0FEE:	A00008  	LDY #$0800     ; Bytes: 2048
C3/0FF1:	8419    	STY $19        ; Set data size
C3/0FF3:	60      	RTS

Disable conditional upload during NMI
C3/0FF4:	641B    	STZ $1B        ; Null dst LB
C3/0FF6:	641C    	STZ $1C        ; Null dst HB
C3/0FF8:	60      	RTS

Load specified palette (for ending)
C3/0FF9:	85ED    	STA $ED        ; Set src HB
C3/0FFB:	84E7    	STY $E7        ; Set dst LBs
C3/0FFD:	86EB    	STX $EB        ; Set src LBs
C3/0FFF:	A97E    	LDA #$7E       ; Bank: 7E
C3/1001:	85E9    	STA $E9        ; Set dst HB
C3/1003:	A400    	LDY $00        ; Index: 0
C3/1005:	C220    	REP #$20       ; 16-bit A
C3/1007:	B7EB    	LDA [$EB],Y    ; Load color
C3/1009:	97E7    	STA [$E7],Y    ; Save in RAM
C3/100B:	C8      	INY            ; Index +1
C3/100C:	C8      	INY            ; Index +1
C3/100D:	C02000  	CPY #$0020     ; Copied 16?
C3/1010:	D0F5    	BNE $1007      ; Loop if not
C3/1012:	E220    	SEP #$20       ; 8-bit A
C3/1014:	60      	RTS

Set to gradually convert one palette into another
C3/1015:	48      	PHA            ; Save slowness
C3/1016:	84E7    	STY $E7        ; Save dst LBs
C3/1018:	86EB    	STX $EB        ; Save src LBs
C3/101A:	A97E    	LDA #$7E       ; Bank: 7E
C3/101C:	85E9    	STA $E9        ; Save dst HB
C3/101E:	A900    	LDA #$00       ; Min slot: 0
C3/1020:	A04810  	LDY #$1048     ; C3/1048
C3/1023:	20DE11  	JSR $11DE      ; Queue fade fn
C3/1026:	68      	PLA            ; Fade slowness
C3/1027:	9FCA377E	STA $7E37CA,X  ; Put in queue
C3/102B:	A5E9    	LDA $E9        ; Dest HB
C3/102D:	9FC9367E	STA $7E36C9,X  ; Put in queue
C3/1031:	A5ED    	LDA $ED        ; Source HB
C3/1033:	9FCA367E	STA $7E36CA,X  ; Put in queue
C3/1037:	C220    	REP #$20       ; 16-bit A
C3/1039:	A5E7    	LDA $E7        ; Dest LBs
C3/103B:	9FC9337E	STA $7E33C9,X  ; Put in queue
C3/103F:	A5EB    	LDA $EB        ; Source LBs
C3/1041:	9F49347E	STA $7E3449,X  ; Put in queue
C3/1045:	E220    	SEP #$20       ; 8-bit A
C3/1047:	60      	RTS

Gradually convert one palette into another
C3/1048:	AA      	TAX            ; Index mode
C3/1049:	7C4C10  	JMP ($104C,X)  ; Handle mode

Jump table for the above
C3/104C:	5010    	; Initialize timer
C3/104E:	6110    	; Modify palette

Mode 0: Initialize timer
C3/1050:	A62D    	LDX $2D        ; Queue index
C3/1052:	A91F    	LDA #$1F       ; Frames: 31
C3/1054:	9D4933  	STA $3349,X    ; Set fade timer
C3/1057:	A500    	LDA $00        ; Clear A
C3/1059:	9D4A33  	STA $334A,X    ; Timer HB: 0
C3/105C:	FE4936  	INC $3649,X    ; Mode +1
C3/105F:	38      	SEC            ; Set to requeue
C3/1060:	60      	RTS

Mode 1: Modify palette
C3/1061:	A62D    	LDX $2D        ; Queue index
C3/1063:	BDC935  	LDA $35C9,X    ; Delay over?
C3/1066:	D035    	BNE $109D      ; Exit if not
C3/1068:	BDCA37  	LDA $37CA,X    ; Slowness
C3/106B:	9DC935  	STA $35C9,X    ; Set delay
C3/106E:	BDC936  	LDA $36C9,X    ; Dest HB
C3/1071:	85E2    	STA $E2        ; Memorize it
C3/1073:	BDCA36  	LDA $36CA,X    ; Source HB
C3/1076:	85E5    	STA $E5        ; Memorize it
C3/1078:	C220    	REP #$20       ; 16-bit A
C3/107A:	BDC933  	LDA $33C9,X    ; Dest LBs
C3/107D:	85E0    	STA $E0        ; Memorize them
C3/107F:	BD4934  	LDA $3449,X    ; Source LBs
C3/1082:	85E3    	STA $E3        ; Memorize them
C3/1084:	BD4933  	LDA $3349,X    ; Fade timer
C3/1087:	85F1    	STA $F1        ; Memorize it
C3/1089:	20A210  	JSR $10A2      ; Alter palette
C3/108C:	E220    	SEP #$20       ; 8-bit A
C3/108E:	AE2D00  	LDX $002D      ; Queue index
C3/1091:	BD4933  	LDA $3349,X    ; Timer expired?
C3/1094:	F005    	BEQ $109B      ; Dequeue if so
C3/1096:	DE4933  	DEC $3349,X    ; Fade timer -1
C3/1099:	D002    	BNE $109D      ; Branch if > 0
C3/109B:	18      	CLC            ; Set to dequeue
C3/109C:	60      	RTS            ; Exit
C3/109D:	DEC935  	DEC $35C9,X    ; Fade delay -1
C3/10A0:	38      	SEC            ; Set to requeue
C3/10A1:	60      	RTS

Partially convert one palette into another
C3/10A2:	A21000  	LDX #$0010     ; Colors: 16
C3/10A5:	A400    	LDY $00        ; Color index: 0
C3/10A7:	B7E0    	LDA [$E0],Y    ; Actual color
C3/10A9:	85E7    	STA $E7        ; Memorize it
C3/10AB:	B7E3    	LDA [$E3],Y    ; Target color
C3/10AD:	85E9    	STA $E9        ; Memorize it
C3/10AF:	20BC10  	JSR $10BC      ; Alter color
C3/10B2:	A5E7    	LDA $E7        ; ...
C3/10B4:	97E0    	STA [$E0],Y    ; Save changes
C3/10B6:	C8      	INY            ; Color index +1
C3/10B7:	C8      	INY            ; Color index +1
C3/10B8:	CA      	DEX            ; One less color
C3/10B9:	D0EC    	BNE $10A7      ; Loop till last
C3/10BB:	60      	RTS

Partially convert one color into another
C3/10BC:	A5E7    	LDA $E7        ; Actual color
C3/10BE:	291F00  	AND #$001F     ; Get red
C3/10C1:	85EB    	STA $EB        ; Memorize it
C3/10C3:	A5E9    	LDA $E9        ; Target color
C3/10C5:	291F00  	AND #$001F     ; Get red
C3/10C8:	38      	SEC            ; Prepare SBC
C3/10C9:	E5EB    	SBC $EB        ; Both match?
C3/10CB:	F00C    	BEQ $10D9      ; Skip if so
C3/10CD:	9008    	BCC $10D7      ; -1 if lesser
C3/10CF:	C5F1    	CMP $F1        ; Diff < timer?
C3/10D1:	9006    	BCC $10D9      ; Skip if so
C3/10D3:	E6EB    	INC $EB        ; Red +1
C3/10D5:	8002    	BRA $10D9      ; Skip a line
C3/10D7:	C6EB    	DEC $EB        ; Red -1

Fork: Handle green
C3/10D9:	A5E7    	LDA $E7        ; Actual color
C3/10DB:	29E003  	AND #$03E0     ; Get green
C3/10DE:	85ED    	STA $ED        ; Memorize it
C3/10E0:	A5E9    	LDA $E9        ; Target color
C3/10E2:	29E003  	AND #$03E0     ; Get green
C3/10E5:	38      	SEC            ; Prepare SBC
C3/10E6:	E5ED    	SBC $ED        ; Both match?
C3/10E8:	F01C    	BEQ $1106      ; Skip if so
C3/10EA:	9012    	BCC $10FE      ; -1 if lesser
C3/10EC:	0A      	ASL A          ; x2
C3/10ED:	0A      	ASL A          ; x4
C3/10EE:	0A      	ASL A          ; x8
C3/10EF:	EB      	XBA            ; Now 0-31
C3/10F0:	C5F1    	CMP $F1        ; Diff < timer?
C3/10F2:	9012    	BCC $1106      ; Skip if so
C3/10F4:	18      	CLC            ; Prepare ADC
C3/10F5:	A5ED    	LDA $ED        ; Actual green
C3/10F7:	692000  	ADC #$0020     ; Green +1
C3/10FA:	85ED    	STA $ED        ; Save changes
C3/10FC:	8008    	BRA $1106      ; Do blue
C3/10FE:	A5ED    	LDA $ED        ; Actual green
C3/1100:	38      	SEC            ; Prepare SBC
C3/1101:	E92000  	SBC #$0020     ; Green -1
C3/1104:	85ED    	STA $ED        ; Save changes

Fork: Handle blue
C3/1106:	A5E7    	LDA $E7        ; Actual color
C3/1108:	29007C  	AND #$7C00     ; Get blue
C3/110B:	85EF    	STA $EF        ; Memorize it
C3/110D:	A5E9    	LDA $E9        ; Target color
C3/110F:	29007C  	AND #$7C00     ; Get blue
C3/1112:	38      	SEC            ; Prepare SBC
C3/1113:	E5EF    	SBC $EF        ; Both match?
C3/1115:	F01F    	BEQ $1136      ; Skip if so
C3/1117:	9015    	BCC $112E      ; -1 if lesser
C3/1119:	E220    	SEP #$20       ; 8-bit A
C3/111B:	EB      	XBA            ; 256
C3/111C:	4A      	LSR A          ; 512
C3/111D:	4A      	LSR A          ; Now 0-31
C3/111E:	C220    	REP #$20       ; 16-bit A
C3/1120:	C5F1    	CMP $F1        ; Diff < timer?
C3/1122:	9012    	BCC $1136      ; Skip if so
C3/1124:	18      	CLC            ; Prepare ADC
C3/1125:	A5EF    	LDA $EF        ; Actual blue
C3/1127:	690004  	ADC #$0400     ; Blue +1
C3/112A:	85EF    	STA $EF        ; Save changes
C3/112C:	8008    	BRA $1136      ; Merge RGB
C3/112E:	A5EF    	LDA $EF        ; Actual blue
C3/1130:	38      	SEC            ; Prepare SBC
C3/1131:	E90004  	SBC #$0400     ; Blue -1
C3/1134:	85EF    	STA $EF        ; Save changes

Fork: Merge RGB components
C3/1136:	A5EB    	LDA $EB        ; Altered red
C3/1138:	05ED    	ORA $ED        ; Add green
C3/113A:	05EF    	ORA $EF        ; Add blue
C3/113C:	85E7    	STA $E7        ; Uh...
C3/113E:	60      	RTS

White palette for an ending transition
C3/113F:	0000 FF7F FF7F FF7F FF7F FF7F FF7F FF7F
C3/114F:	FF7F FF7F FF7F FF7F FF7F FF7F FF7F FF7F

Black palette for most ending transitions
C3/115F:	0000 0000 0000 0000 0000 0000 0000 0000
C3/116F:	0000 0000 0000 0000 0000 0000 0000 0000

Reset OAM and animation queue
C3/117F:	A600    	LDX $00        ; Clear X
C3/1181:	862D    	STX $2D        ; Queue index: 0
C3/1183:	862F    	STX $2F        ; No use...
C3/1185:	C220    	REP #$20       ; 16-bit A
C3/1187:	20B911  	JSR $11B9      ; Reset OAM
C3/118A:	E210    	SEP #$10       ; 8-bit X, Y
C3/118C:	A27E    	LDX #$7E       ; Bank: 7E
C3/118E:	DA      	PHX            ; Put on stack
C3/118F:	AB      	PLB            ; Set DB to 7E
C3/1190:	A200    	LDX #$00       ; Queue slot: 1
C3/1192:	9E4932  	STZ $3249,X    ; Anim fn: None
C3/1195:	9E4936  	STZ $3649,X    ; Anim mode: 0
C3/1198:	9EC935  	STZ $35C9,X    ; Misc. specs: 0
C3/119B:	9E4937  	STZ $3749,X    ; OAM complements
C3/119E:	9EC933  	STZ $33C9,X    ; Fractional X: 0
C3/11A1:	9E4934  	STZ $3449,X    ; Fractional Y: 0
C3/11A4:	9EC934  	STZ $34C9,X    ; H-Speed: 0
C3/11A7:	9E4935  	STZ $3549,X    ; V-Speed: 0
C3/11AA:	E8      	INX            ; Index +1
C3/11AB:	E8      	INX            ; Index +1
C3/11AC:	E080    	CPX #$80       ; Done 64 slots?
C3/11AE:	D0E2    	BNE $1192      ; Loop if not
C3/11B0:	A200    	LDX #$00       ; Bank: 00
C3/11B2:	DA      	PHX            ; Put on stack
C3/11B3:	AB      	PLB            ; Set DB to 0
C3/11B4:	E220    	SEP #$20       ; 8-bit A
C3/11B6:	C210    	REP #$10       ; 16-bit X, Y
C3/11B8:	60      	RTS

Reset OAM
C3/11B9:	A600    	LDX $00        ; Index: 0
C3/11BB:	A901E0  	LDA #$E001     ; X=1, Y=224
C3/11BE:	9D0003  	STA $0300,X    ; Put offscreen
C3/11C1:	E8      	INX            ; Index +1
C3/11C2:	E8      	INX            ; Index +1
C3/11C3:	A90100  	LDA #$0001     ; Tile num: 1
C3/11C6:	9D0003  	STA $0300,X    ; Set attribs
C3/11C9:	E8      	INX            ; Index +1
C3/11CA:	E8      	INX            ; Index +1
C3/11CB:	E00002  	CPX #$0200     ; Past Lo-OAM?
C3/11CE:	D0EB    	BNE $11BB      ; Loop if not
C3/11D0:	A400    	LDY $00        ; Index: 0
C3/11D2:	98      	TYA            ; Clear A
C3/11D3:	990005  	STA $0500,Y    ; Clear Hi-OAM
C3/11D6:	C8      	INY            ; Index +1
C3/11D7:	C8      	INY            ; Index +1
C3/11D8:	C02000  	CPY #$0020     ; Past Hi-OAM?
C3/11DB:	D0F6    	BNE $11D3      ; Loop if not
C3/11DD:	60      	RTS

Queue animation function, include queue index
C3/11DE:	AA      	TAX            ; Starting slot
C3/11DF:	A97E    	LDA #$7E       ; Bank: 7E
C3/11E1:	48      	PHA            ; Put on stack
C3/11E2:	AB      	PLB            ; Set DB to 7E
C3/11E3:	8A      	TXA            ; Starting slot
C3/11E4:	20F611  	JSR $11F6      ; Queue anim fn
C3/11E7:	E220    	SEP #$20       ; 8-bit A
C3/11E9:	A900    	LDA #$00       ; Zero A
C3/11EB:	48      	PHA            ; Put on stack
C3/11EC:	AB      	PLB            ; Set DB to 0
C3/11ED:	A52D    	LDA $2D        ; Caller's index
C3/11EF:	9F4A377E	STA $7E374A,X  ; Put in queue
C3/11F3:	E62F    	INC $2F        ; No use...
C3/11F5:	60      	RTS

Queue animation function
C3/11F6:	EB      	XBA            ; Switch to HB
C3/11F7:	A900    	LDA #$00       ; Clear it
C3/11F9:	EB      	XBA            ; Starting slot
C3/11FA:	0A      	ASL A          ; x2
C3/11FB:	0A      	ASL A          ; x4
C3/11FC:	0A      	ASL A          ; x8
C3/11FD:	0A      	ASL A          ; x16
C3/11FE:	C220    	REP #$20       ; 16-bit A
C3/1200:	AA      	TAX            ; Index it
C3/1201:	BD4932  	LDA $3249,X    ; Empty slot?
C3/1204:	D005    	BNE $120B      ; Skip if not
C3/1206:	98      	TYA            ; Animation fn
C3/1207:	9D4932  	STA $3249,X    ; Put in queue
C3/120A:	60      	RTS

Fork: Try next slot
C3/120B:	E8      	INX            ; Index +1
C3/120C:	E8      	INX            ; Index +1
C3/120D:	E08000  	CPX #$0080     ; Past slot 64?
C3/1210:	D0EF    	BNE $1201      ; Loop if not
C3/1212:	CA      	DEX            ; Index -1
C3/1213:	CA      	DEX            ; Index -1
C3/1214:	98      	TYA            ; Animation fn
C3/1215:	9D4932  	STA $3249,X    ; Put in queue
C3/1218:	80FE    	BRA $1218      ; Freeze game...
C3/121A:	60      	RTS            ; ...

Process animation queue, hide inactive objects
C3/121B:	8B      	PHB            ; Save DB
C3/121C:	A97E    	LDA #$7E       ; Bank: 7E
C3/121E:	48      	PHA            ; Put on stack
C3/121F:	AB      	PLB            ; Set DB to 7E
C3/1220:	A20003  	LDX #$0300     ; 7E/0300
C3/1223:	860E    	STX $0E        ; Set Lo-OAM ptr
C3/1225:	A20005  	LDX #$0500     ; 7E/0500
C3/1228:	8610    	STX $10        ; Set Hi-OAM ptr
C3/122A:	A903    	LDA #$03       ; Tile: 1 of 4
C3/122C:	8533    	STA $33        ; Set Hi-OAM index
C3/122E:	6434    	STZ $34        ; Hi-OAM: 4x 8x8
C3/1230:	A28000  	LDX #$0080     ; Objects: 128
C3/1233:	8631    	STX $31        ; Set space left
C3/1235:	A600    	LDX $00        ; Queue index: 0
C3/1237:	C220    	REP #$20       ; 16-bit A
C3/1239:	BD4932  	LDA $3249,X    ; Animation fn
C3/123C:	F022    	BEQ $1260      ; Skip if blank
C3/123E:	862D    	STX $2D        ; Set queue index
C3/1240:	DA      	PHX            ; Save index
C3/1241:	852B    	STA $2B        ; Set anim fn
C3/1243:	E220    	SEP #$20       ; 8-bit A
C3/1245:	7B      	TDC            ; Clear A
C3/1246:	BD4936  	LDA $3649,X    ; Anim mode
C3/1249:	0A      	ASL A          ; Double it
C3/124A:	206E12  	JSR $126E      ; Run anim fn
C3/124D:	C220    	REP #$20       ; 16-bit A
C3/124F:	FA      	PLX            ; Queue index
C3/1250:	B00E    	BCS $1260      ; Branch if kept
C3/1252:	9E4932  	STZ $3249,X    ; Anim fn: None
C3/1255:	9E4936  	STZ $3649,X    ; Anim mode: 0
C3/1258:	9EC935  	STZ $35C9,X    ; Misc. specs: 0
C3/125B:	9E4937  	STZ $3749,X    ; OAM complements
C3/125E:	C62F    	DEC $2F        ; No use...
C3/1260:	E8      	INX            ; Index +1
C3/1261:	E8      	INX            ; Index +1
C3/1262:	E08000  	CPX #$0080     ; Done 64 slots?
C3/1265:	D0D2    	BNE $1239      ; Loop if not
C3/1267:	20A313  	JSR $13A3      ; Purge OAM
C3/126A:	E220    	SEP #$20       ; 8-bit A
C3/126C:	AB      	PLB            ; Restore DB
C3/126D:	60      	RTS

Execute queued animation function
C3/126E:	6C2B00  	JMP ($002B)    ; Run anim fn

Initialize M7 or object's pose number and timer
C3/1271:	7B      	TDC            ; Clear A
C3/1272:	9DC936  	STA $36C9,X    ; Pose: 1st
C3/1275:	C220    	REP #$20       ; 16-bit A
C3/1277:	BDC932  	LDA $32C9,X    ; Anim ptr LBs
C3/127A:	85EB    	STA $EB        ; Set src LBs
C3/127C:	E220    	SEP #$20       ; 8-bit A
C3/127E:	BDCA35  	LDA $35CA,X    ; Anim ptr HB
C3/1281:	85ED    	STA $ED        ; Set src HB
C3/1283:	A00200  	LDY #$0002     ; Skip pose ptr
C3/1286:	B7EB    	LDA [$EB],Y    ; Pose timer
C3/1288:	9DCA36  	STA $36CA,X    ; Set sprite's
C3/128B:	60      	RTS

Handle object's pose timer, then define OAM
C3/128C:	209212  	JSR $1292      ; Pose timer -1
C3/128F:	4CDE12  	JMP $12DE      ; Define OAM

Handle pose or Mode 7 timer
C3/1292:	A62D    	LDX $2D        ; Queue index
C3/1294:	A400    	LDY $00        ; ...
C3/1296:	C220    	REP #$20       ; 16-bit A
C3/1298:	BDC932  	LDA $32C9,X    ; Anim ptr LBs
C3/129B:	85EB    	STA $EB        ; Set src LBs
C3/129D:	E220    	SEP #$20       ; 8-bit A
C3/129F:	BDCA35  	LDA $35CA,X    ; Anim ptr HB
C3/12A2:	85ED    	STA $ED        ; Set src HB

Fork: Handle control codes
C3/12A4:	BDCA36  	LDA $36CA,X    ; Pose timer
C3/12A7:	C9FE    	CMP #$FE       ; Infinite?
C3/12A9:	F022    	BEQ $12CD      ; Exit if so
C3/12AB:	C9FF    	CMP #$FF       ; Loop point?
C3/12AD:	D008    	BNE $12B7      ; Branch if not
C3/12AF:	9EC936  	STZ $36C9,X    ; Pose: 1st
C3/12B2:	20CE12  	JSR $12CE      ; Set new timer
C3/12B5:	80ED    	BRA $12A4      ; Repeat checks

Fork: Check if expired
C3/12B7:	BDCA36  	LDA $36CA,X    ; Timer expired?
C3/12BA:	D00E    	BNE $12CA      ; Branch if not
C3/12BC:	BDC936  	LDA $36C9,X    ; Pose index
C3/12BF:	18      	CLC            ; ...
C3/12C0:	6903    	ADC #$03       ; Point to next
C3/12C2:	9DC936  	STA $36C9,X    ; Save changes
C3/12C5:	20CE12  	JSR $12CE      ; Set new timer
C3/12C8:	80DA    	BRA $12A4      ; Repeat checks

Fork: Decrease timer
C3/12CA:	DECA36  	DEC $36CA,X    ; Timer -1
C3/12CD:	60      	RTS

Initialize pose or Mode 7 timer
C3/12CE:	E210    	SEP #$10       ; 8-bit X, Y
C3/12D0:	BDC936  	LDA $36C9,X    ; Pose index
C3/12D3:	A8      	TAY            ; Index it
C3/12D4:	C8      	INY            ; Skip ptr LB
C3/12D5:	C8      	INY            ; Skip ptr HB
C3/12D6:	B7EB    	LDA [$EB],Y    ; Pose timer
C3/12D8:	9DCA36  	STA $36CA,X    ; Set object's
C3/12DB:	C210    	REP #$10       ; 16-bit X, Y
C3/12DD:	60      	RTS

Define OAM for object's tiles
C3/12DE:	E210    	SEP #$10       ; 8-bit X, Y
C3/12E0:	BDC936  	LDA $36C9,X    ; Pose index
C3/12E3:	A8      	TAY            ; Index it
C3/12E4:	C220    	REP #$20       ; 16-bit A
C3/12E6:	B7EB    	LDA [$EB],Y    ; Pose OAM ptr
C3/12E8:	85E7    	STA $E7        ; Set src LBs
C3/12EA:	C8      	INY            ; ...
C3/12EB:	C8      	INY            ; ...
C3/12EC:	E220    	SEP #$20       ; 8-bit A
C3/12EE:	BDCA35  	LDA $35CA,X    ; OAM ptr HB
C3/12F1:	85E9    	STA $E9        ; Set src HB
C3/12F3:	C210    	REP #$10       ; 16-bit X, Y
C3/12F5:	A400    	LDY $00        ; Index: 0
C3/12F7:	A531    	LDA $31        ; OAM's full?
C3/12F9:	F06B    	BEQ $1366      ; Exit if so
C3/12FB:	B7E7    	LDA [$E7],Y    ; Tile count
C3/12FD:	85E6    	STA $E6        ; Memorize it
C3/12FF:	F065    	BEQ $1366      ; Exit if none
C3/1301:	C8      	INY            ; Index +1

Fork: Large tile (16x16)
C3/1302:	B7E7    	LDA [$E7],Y    ; Tile X & flag
C3/1304:	85E0    	STA $E0        ; Memorize them
C3/1306:	1013    	BPL $131B      ; Branch if 8x8
C3/1308:	7B      	TDC            ; Clear A
C3/1309:	A533    	LDA $33        ; Hi-OAM index
C3/130B:	AA      	TAX            ; Index it
C3/130C:	BF9F13C3	LDA $C3139F,X  ; Size flag
C3/1310:	18      	CLC            ; Prepare ADC
C3/1311:	6534    	ADC $34        ; Add flag pack
C3/1313:	8534    	STA $34        ; Set flag pack
C3/1315:	9210    	STA ($10)      ; Put in Hi-OAM
C3/1317:	A62D    	LDX $2D        ; Queue index
C3/1319:	8004    	BRA $131F      ; Skip 2 lines

Fork: Small tile (8x8)
C3/131B:	A534    	LDA $34        ; OAM flag pack
C3/131D:	9210    	STA ($10)      ; Put in Hi-OAM
C3/131F:	A5E0    	LDA $E0        ; Tile's X-Pos
C3/1321:	297F    	AND #$7F       ; Clear flag
C3/1323:	85E0    	STA $E0        ; Save changes

Fork: Pan with BG1
C3/1325:	BD4A36  	LDA $364A,X    ; Sprite flags
C3/1328:	8901    	BIT #$01       ; Pan with BG1?
C3/132A:	F00D    	BEQ $1339      ; Branch if not
C3/132C:	64E1    	STZ $E1        ; Tile's X HB: 0
C3/132E:	C220    	REP #$20       ; 16-bit A
C3/1330:	A5E0    	LDA $E0        ; Tile's rel X
C3/1332:	38      	SEC            ; Prepare SBC
C3/1333:	E535    	SBC $35        ; Deduct BG1 X-Pos
C3/1335:	85E0    	STA $E0        ; Save changes
C3/1337:	E220    	SEP #$20       ; 8-bit A

Fork: Define Lo-OAM, do next tile
C3/1339:	206713  	JSR $1367      ; Adjust attribs
C3/133C:	C633    	DEC $33        ; Hi-OAM index -1
C3/133E:	100A    	BPL $134A      ; Branch if 0+
C3/1340:	A903    	LDA #$03       ; Tile: 1 of 4
C3/1342:	8533    	STA $33        ; Reset size index
C3/1344:	6434    	STZ $34        ; Hi-OAM: 4x 8x8
C3/1346:	C220    	REP #$20       ; 16-bit A
C3/1348:	E610    	INC $10        ; Hi-OAM ptr +1
C3/134A:	C220    	REP #$20       ; 16-bit A
C3/134C:	A5E0    	LDA $E0        ; Tile coords
C3/134E:	920E    	STA ($0E)      ; Save in OAM
C3/1350:	E60E    	INC $0E        ; Lo-OAM ptr +1
C3/1352:	E60E    	INC $0E        ; Lo-OAM ptr +1
C3/1354:	A5E2    	LDA $E2        ; Tile num/attr
C3/1356:	920E    	STA ($0E)      ; Save in OAM
C3/1358:	E60E    	INC $0E        ; Lo-OAM ptr +1
C3/135A:	E60E    	INC $0E        ; Lo-OAM ptr +1
C3/135C:	E220    	SEP #$20       ; 8-bit A
C3/135E:	C631    	DEC $31        ; Space left -1
C3/1360:	F004    	BEQ $1366      ; Exit if full
C3/1362:	C6E6    	DEC $E6        ; Tiles left -1
C3/1364:	D09C    	BNE $1302      ; Loop till last
C3/1366:	60      	RTS

Determine object tile's coordinates, load attributes
C3/1367:	A5E0    	LDA $E0        ; Tile's rel X
C3/1369:	18      	CLC            ; Prepare ADC
C3/136A:	7DCA33  	ADC $33CA,X    ; Add object's X
C3/136D:	85E0    	STA $E0        ; Save changes
C3/136F:	C8      	INY            ; Index +1
C3/1370:	B7E7    	LDA [$E7],Y    ; Tile's rel Y
C3/1372:	18      	CLC            ; Prepare ADC
C3/1373:	7D4A34  	ADC $344A,X    ; Add object's Y
C3/1376:	85E1    	STA $E1        ; Memorize sum
C3/1378:	C8      	INY            ; Index +1
C3/1379:	B7E7    	LDA [$E7],Y    ; Tile num LSBs
C3/137B:	85E2    	STA $E2        ; Memorize them
C3/137D:	C8      	INY            ; Index +1
C3/137E:	BD4A36  	LDA $364A,X    ; Sprite flags
C3/1381:	8902    	BIT #$02       ; Mirror H-wise?
C3/1383:	F006    	BEQ $138B      ; Branch if not
C3/1385:	B7E7    	LDA [$E7],Y    ; Tile attributes
C3/1387:	0940    	ORA #$40       ; Add H-Flip
C3/1389:	8002    	BRA $138D      ; Skip a line
C3/138B:	B7E7    	LDA [$E7],Y    ; Tile attributes
C3/138D:	85E3    	STA $E3        ; Memorize them
C3/138F:	BD4937  	LDA $3749,X    ; OAM complements
C3/1392:	F009    	BEQ $139D      ; Exit if none
C3/1394:	A5E3    	LDA $E3        ; Tile attributes
C3/1396:	29F1    	AND #$F1       ; Clear palette
C3/1398:	1D4937  	ORA $3749,X    ; Add complements
C3/139B:	85E3    	STA $E3        ; Save changes
C3/139D:	C8      	INY            ; Index +1
C3/139E:	60      	RTS

Hi-OAM complements
C3/139F:	80      	; Tile 4: Large
C3/13A0:	20      	; Tile 3: Large
C3/13A1:	08      	; Tile 2: Large
C3/13A2:	02      	; Tile 1: Large

Hide inactive tiles in OAM
C3/13A3:	A431    	LDY $31        ; Unused tiles
C3/13A5:	F010    	BEQ $13B7      ; Exit if none
C3/13A7:	A2FC01  	LDX #$01FC     ; Tile: Last
C3/13AA:	A901E0  	LDA #$E001     ; X=1, Y=224
C3/13AD:	9D0003  	STA $0300,X    ; Set position
C3/13B0:	CA      	DEX            ; OAM index -1
C3/13B1:	CA      	DEX            ; OAM index -1
C3/13B2:	CA      	DEX            ; OAM index -1
C3/13B3:	CA      	DEX            ; OAM index -1
C3/13B4:	88      	DEY            ; Tiles left -1
C3/13B5:	D0F6    	BNE $13AD      ; Loop till last
C3/13B7:	60      	RTS

Trigger NMI, decode joypads, etc.
C3/13B8:	20D313  	JSR $13D3      ; Trigger NMI
C3/13BB:	A546    	LDA $46        ; Menu flags
C3/13BD:	8920    	BIT #$20       ; Scroll list?
C3/13BF:	F003    	BEQ $13C4      ; Branch if not
C3/13C1:	208688  	JSR $8886      ; Scroll BG1
C3/13C4:	2299ACC3	JSL $C3AC99    ; Decode joypads
C3/13C8:	A520    	LDA $20        ; Transition timer
C3/13CA:	F006    	BEQ $13D2      ; Exit if off
C3/13CC:	7B      	TDC            ; Clear A
C3/13CD:	A8      	TAY            ; Clear Y
C3/13CE:	8408    	STY $08        ; No-autofire keys
C3/13D0:	840A    	STY $0A        ; Semi-auto keys
C3/13D2:	60      	RTS

Trigger NMI, allow cursor sound to repeat
C3/13D3:	A981    	LDA #$81       ; Stop IRQ timers
C3/13D5:	8D0042  	STA $4200      ; On: NMI, joypads
C3/13D8:	8524    	STA $24        ; Mark NMI request
C3/13DA:	58      	CLI            ; Unmask IRQs
C3/13DB:	A524    	LDA $24        ; Back from NMI?
C3/13DD:	D0FC    	BNE $13DB      ; Loop if not
C3/13DF:	78      	SEI            ; Mask IRQs
C3/13E0:	A544    	LDA $44        ; Brightness
C3/13E2:	8D0021  	STA $2100      ; Apply it now
C3/13E5:	A543    	LDA $43        ; Queued HDMA
C3/13E7:	8D0C42  	STA $420C      ; Update channels
C3/13EA:	A5B5    	LDA $B5        ; Mosaic settings
C3/13EC:	8D0621  	STA $2106      ; Apply to screen
C3/13EF:	64AE    	STZ $AE        ; Allow SFX repeat
C3/13F1:	60      	RTS

Handle NMI (menu, ending)
C3/13F2:	08      	PHP            ; ...
C3/13F3:	C230    	REP #$30       ; 16-bit A, X, Y
C3/13F5:	48      	PHA            ; Save A
C3/13F6:	DA      	PHX            ; Save X
C3/13F7:	5A      	PHY            ; Save Y
C3/13F8:	8B      	PHB            ; Save DB
C3/13F9:	0B      	PHD            ; Save DP
C3/13FA:	E220    	SEP #$20       ; 8-bit A
C3/13FC:	AD1042  	LDA $4210      ; Clear NMI flag
C3/13FF:	A900    	LDA #$00       ; Clear A
C3/1401:	48      	PHA            ; Put on stack
C3/1402:	AB      	PLB            ; Set DB to 0
C3/1403:	A20000  	LDX #$0000     ; Clear X
C3/1406:	DA      	PHX            ; Put on stack
C3/1407:	2B      	PLD            ; Set DP to 0
C3/1408:	A524    	LDA $24        ; Manual NMI?
C3/140A:	F010    	BEQ $141C      ; Branch if not
C3/140C:	207D14  	JSR $147D      ; Refresh screen
C3/140F:	C220    	REP #$20       ; 16-bit A
C3/1411:	E6CF    	INC $CF        ; Ending timer +1
C3/1413:	E220    	SEP #$20       ; 8-bit A
C3/1415:	A420    	LDY $20        ; Transition timer
C3/1417:	F003    	BEQ $141C      ; Ignore if off
C3/1419:	88      	DEY            ; Timer -1
C3/141A:	8420    	STY $20        ; Save changes
C3/141C:	221500C0	JSL $C00015    ; Event timers -1
C3/1420:	223314C3	JSL $C31433    ; Play time +1
C3/1424:	E623    	INC $23        ; NMI count +1
C3/1426:	7B      	TDC            ; Clear A
C3/1427:	8524    	STA $24        ; Unmark manual NMI
C3/1429:	C230    	REP #$30       ; 16-bit A, X, Y
C3/142B:	2B      	PLD            ; Restore DP
C3/142C:	AB      	PLB            ; Restore DB
C3/142D:	7A      	PLY            ; Restore Y
C3/142E:	FA      	PLX            ; Restore X
C3/142F:	68      	PLA            ; Restore A
C3/1430:	28      	PLP            ; ...
C3/1431:	40      	RTI

Handle IRQ...
C3/1432:	40      	RTI

Advance play time (NMI)
C3/1433:	AD1E02  	LDA $021E      ; Frames
C3/1436:	C93C    	CMP #$3C       ; 60?
C3/1438:	F002    	BEQ $143C      ; +1 sec if so
C3/143A:	802B    	BRA $1467      ; +1 frame

Fork: Seconds +1
C3/143C:	9C1E02  	STZ $021E      ; Frames = 0
C3/143F:	AD1D02  	LDA $021D      ; Seconds
C3/1442:	C93B    	CMP #$3B       ; 59?
C3/1444:	F005    	BEQ $144B      ; +1 min if so
C3/1446:	EE1D02  	INC $021D      ; +1 second
C3/1449:	801C    	BRA $1467      ; +1 frame

Fork: Minutes +1
C3/144B:	9C1D02  	STZ $021D      ; Seconds = 0
C3/144E:	AD1C02  	LDA $021C      ; Minutes
C3/1451:	C93B    	CMP #$3B       ; 59?
C3/1453:	F005    	BEQ $145A      ; +1 hour if so
C3/1455:	EE1C02  	INC $021C      ; +1 minute
C3/1458:	800D    	BRA $1467      ; +1 frame

Fork: Hours +1
C3/145A:	9C1C02  	STZ $021C      ; Minutes = 0
C3/145D:	AD1B02  	LDA $021B      ; Hours
C3/1460:	C963    	CMP #$63       ; 99?
C3/1462:	F003    	BEQ $1467      ; Branch if so
C3/1464:	EE1B02  	INC $021B      ; +1 hour

Fork: Frames +1
C3/1467:	AD1B02  	LDA $021B      ; Hours
C3/146A:	C963    	CMP #$63       ; 99?
C3/146C:	D00A    	BNE $1478      ; Branch if not
C3/146E:	AD1C02  	LDA $021C      ; Minutes
C3/1471:	C93B    	CMP #$3B       ; 59?
C3/1473:	D003    	BNE $1478      ; Branch if not
C3/1475:	9C1D02  	STZ $021D      ; Seconds = 0
C3/1478:	EE1E02  	INC $021E      ; +1 frame
C3/147B:	7B      	TDC            ; Clear A
C3/147C:	6B      	RTL

Refresh screen (NMI)
C3/147D:	9C0C42  	STZ $420C      ; Disable HDMA
C3/1480:	9C0B42  	STZ $420B      ; Disable DMA...
C3/1483:	A535    	LDA $35        ; BG1 X-Pos LB
C3/1485:	8D0D21  	STA $210D      ; Apply it now
C3/1488:	A536    	LDA $36        ; BG1 X-Pos HB
C3/148A:	8D0D21  	STA $210D      ; Apply it now
C3/148D:	A537    	LDA $37        ; BG1 Y-Pos LB
C3/148F:	8D0E21  	STA $210E      ; Apply it now
C3/1492:	A538    	LDA $38        ; BG1 Y-Pos HB
C3/1494:	8D0E21  	STA $210E      ; Apply it now
C3/1497:	A539    	LDA $39        ; BG2 X-Pos LB
C3/1499:	8D0F21  	STA $210F      ; Apply it now
C3/149C:	A53A    	LDA $3A        ; BG2 X-Pos HB
C3/149E:	8D0F21  	STA $210F      ; Apply it now
C3/14A1:	A53B    	LDA $3B        ; BG2 Y-Pos LB
C3/14A3:	8D1021  	STA $2110      ; Apply it now
C3/14A6:	A53C    	LDA $3C        ; BG2 Y-Pos HB
C3/14A8:	8D1021  	STA $2110      ; Apply it now
C3/14AB:	A53D    	LDA $3D        ; BG3 X-Pos LB
C3/14AD:	8D1121  	STA $2111      ; Apply it now
C3/14B0:	A53E    	LDA $3E        ; BG3 X-Pos HB
C3/14B2:	8D1121  	STA $2111      ; Apply it now
C3/14B5:	A53F    	LDA $3F        ; BG3 Y-Pos LB
C3/14B7:	8D1221  	STA $2112      ; Apply it now
C3/14BA:	A540    	LDA $40        ; BG3 Y-Pos HB
C3/14BC:	8D1221  	STA $2112      ; Apply it now
C3/14BF:	20E7E1  	JSR $E1E7      ; Refresh Mode 7
C3/14C2:	20CE14  	JSR $14CE      ; Refresh OAM
C3/14C5:	203D15  	JSR $153D      ; Refresh CGRAM
C3/14C8:	20F314  	JSR $14F3      ; Do VRAM DMA A
C3/14CB:	4C1715  	JMP $1517      ; Do VRAM DMA B

Refresh OAM (NMI)
C3/14CE:	A600    	LDX $00        ; $0000
C3/14D0:	8E0221  	STX $2102      ; Set OAM address
C3/14D3:	8A      	TXA            ; Bank: 00
C3/14D4:	8D0443  	STA $4304      ; Set src HB
C3/14D7:	A902    	LDA #$02       ; 1Rx2B to PPU
C3/14D9:	8D0043  	STA $4300      ; Set DMA mode
C3/14DC:	A904    	LDA #$04       ; $2104
C3/14DE:	8D0143  	STA $4301      ; To OAM
C3/14E1:	A00003  	LDY #$0300     ; 00/0300
C3/14E4:	8C0243  	STY $4302      ; Set src LBs
C3/14E7:	A02002  	LDY #$0220     ; Bytes: 544
C3/14EA:	8C0543  	STY $4305      ; Set data size
C3/14ED:	A901    	LDA #$01       ; Channel: 0
C3/14EF:	8D0B42  	STA $420B      ; Move data
C3/14F2:	60      	RTS

Handle absolute VRAM transfer (NMI)
C3/14F3:	A414    	LDY $14        ; Destination
C3/14F5:	8C1621  	STY $2116      ; Set VRAM ptr
C3/14F8:	A901    	LDA #$01       ; 2Rx1B to PPU
C3/14FA:	8D0043  	STA $4300      ; Set DMA mode
C3/14FD:	A918    	LDA #$18       ; $2118
C3/14FF:	8D0143  	STA $4301      ; To VRAM
C3/1502:	A416    	LDY $16        ; Source LBs
C3/1504:	8C0243  	STY $4302      ; Set CH0's
C3/1507:	A518    	LDA $18        ; Source HB
C3/1509:	8D0443  	STA $4304      ; Set CH0's
C3/150C:	A412    	LDY $12        ; Number of bytes
C3/150E:	8C0543  	STY $4305      ; Set data size
C3/1511:	A901    	LDA #$01       ; Channel: 0
C3/1513:	8D0B42  	STA $420B      ; Move data
C3/1516:	60      	RTS

Handle conditional VRAM transfer (NMI)
C3/1517:	A41B    	LDY $1B        ; Destination
C3/1519:	F021    	BEQ $153C      ; Exit if none
C3/151B:	8C1621  	STY $2116      ; Set VRAM ptr
C3/151E:	A901    	LDA #$01       ; 2Rx1B to PPU
C3/1520:	8D0043  	STA $4300      ; Set DMA mode
C3/1523:	A918    	LDA #$18       ; $2118
C3/1525:	8D0143  	STA $4301      ; To VRAM
C3/1528:	A41D    	LDY $1D        ; Source LBs
C3/152A:	8C0243  	STY $4302      ; Set CH0's
C3/152D:	A51F    	LDA $1F        ; Source HB
C3/152F:	8D0443  	STA $4304      ; Set CH0's
C3/1532:	A419    	LDY $19        ; Number of bytes
C3/1534:	8C0543  	STY $4305      ; Set data size
C3/1537:	A901    	LDA #$01       ; Channel: 0
C3/1539:	8D0B42  	STA $420B      ; Move data
C3/153C:	60      	RTS

Refresh CGRAM (NMI)
C3/153D:	A545    	LDA $45        ; Menu flags
C3/153F:	8901    	BIT #$01       ; Freeze CGRAM?
C3/1541:	F025    	BEQ $1568      ; Exit if so
C3/1543:	A500    	LDA $00        ; CGRAM: $0000
C3/1545:	8D2121  	STA $2121      ; To BG color 0
C3/1548:	A902    	LDA #$02       ; 1Rx2B to PPU
C3/154A:	8D0043  	STA $4300      ; Set DMA mode
C3/154D:	A922    	LDA #$22       ; $2122
C3/154F:	8D0143  	STA $4301      ; To CGRAM
C3/1552:	A04930  	LDY #$3049     ; 7E/3049
C3/1555:	8C0243  	STY $4302      ; Set src LBs
C3/1558:	A97E    	LDA #$7E       ; Bank: 7E
C3/155A:	8D0443  	STA $4304      ; Set src HB
C3/155D:	A00002  	LDY #$0200     ; Bytes: 512
C3/1560:	8C0543  	STY $4305      ; Set data size
C3/1563:	A901    	LDA #$01       ; Channel: 0
C3/1565:	8D0B42  	STA $420B      ; Move data
C3/1568:	60      	RTS

Load save data on defeat
C3/1569:	AD1F02  	LDA $021F      ; File number
C3/156C:	F011    	BEQ $157F      ; Reset if none
C3/156E:	20CF15  	JSR $15CF      ; Load save file
C3/1571:	203A1A  	JSR $1A3A      ; Compute checksum
C3/1574:	20541A  	JSR $1A54      ; Bad checksum?
C3/1577:	F006    	BEQ $157F      ; Reset game if so
C3/1579:	20FE15  	JSR $15FE      ; Move timer data
C3/157C:	7B      	TDC            ; Reset game: No
C3/157D:	8004    	BRA $1583      ; Set aftereffect

Fork: Reset game
C3/157F:	E220    	SEP #$20       ; ...
C3/1581:	A9FF    	LDA #$FF       ; Reset game: Yes
C3/1583:	8D0502  	STA $0205      ; Set aftereffect
C3/1586:	7B      	TDC            ; ...
C3/1587:	6B      	RTL

Record game data
C3/1588:	8FF07F30	STA $307FF0    ; Set last altered
C3/158C:	8D2402  	STA $0224      ; Set last viewed
C3/158F:	48      	PHA            ; Memorize slot
C3/1590:	AC1B02  	LDY $021B      ; Hrs, mins played
C3/1593:	8C6318  	STY $1863      ; To SRAM block
C3/1596:	AD1D02  	LDA $021D      ; Seconds played
C3/1599:	8D6518  	STA $1865      ; To SRAM block
C3/159C:	20EF15  	JSR $15EF      ; Move timer data
C3/159F:	203A1A  	JSR $1A3A      ; Compute checksum
C3/15A2:	A4E7    	LDY $E7        ; File checksum
C3/15A4:	8CFE1F  	STY $1FFE      ; To SRAM block
C3/15A7:	7B      	TDC            ; Clear A
C3/15A8:	68      	PLA            ; File number
C3/15A9:	0A      	ASL A          ; Double it
C3/15AA:	AA      	TAX            ; Index it
C3/15AB:	C220    	REP #$20       ; 16-bit A
C3/15AD:	BFC715C3	LDA $C315C7,X  ; SRAM pointer
C3/15B1:	AA      	TAX            ; Index it
C3/15B2:	E220    	SEP #$20       ; 8-bit A
C3/15B4:	A400    	LDY $00        ; RAM index: 0
C3/15B6:	B90016  	LDA $1600,Y    ; Game data
C3/15B9:	9F006030	STA $306000,X  ; Save in SRAM
C3/15BD:	E8      	INX            ; SRAM index +1
C3/15BE:	C8      	INY            ; RAM index +1
C3/15BF:	C0000A  	CPY #$0A00     ; At $2000?
C3/15C2:	D0F2    	BNE $15B6      ; Loop if not
C3/15C4:	4C1778  	JMP $7817      ; Mark all files

SRAM pointers
C3/15C7:	0000    	; Bogus...
C3/15C9:	0000    	; Save slot 1
C3/15CB:	000A    	; Save slot 2
C3/15CD:	0014    	; Save slot 3

Load save file
C3/15CF:	EB      	XBA            ; Get HB
C3/15D0:	A500    	LDA $00        ; Clear it
C3/15D2:	EB      	XBA            ; File number
C3/15D3:	0A      	ASL A          ; Double it
C3/15D4:	AA      	TAX            ; Index it
C3/15D5:	C220    	REP #$20       ; 16-bit A
C3/15D7:	BFC715C3	LDA $C315C7,X  ; SRAM pointer
C3/15DB:	AA      	TAX            ; Index it
C3/15DC:	E220    	SEP #$20       ; 8-bit A
C3/15DE:	A400    	LDY $00        ; RAM index: 0
C3/15E0:	BF006030	LDA $306000,X  ; Saved data
C3/15E4:	990016  	STA $1600,Y    ; Copy to RAM
C3/15E7:	E8      	INX            ; SRAM index +1
C3/15E8:	C8      	INY            ; RAM index +1
C3/15E9:	C0000A  	CPY #$0A00     ; At $2000?
C3/15EC:	D0F2    	BNE $15E0      ; Loop if not
C3/15EE:	60      	RTS

Copy event timer data to save area
C3/15EF:	7B      	TDC            ; Clear A
C3/15F0:	AA      	TAX            ; Index: 0
C3/15F1:	BD8811  	LDA $1188,X    ; Timer data
C3/15F4:	9DA81F  	STA $1FA8,X    ; Put in SRAM
C3/15F7:	E8      	INX            ; Index +1
C3/15F8:	E01800  	CPX #$0018     ; At $11A0?
C3/15FB:	D0F4    	BNE $15F1      ; Loop if not
C3/15FD:	60      	RTS

Restore saved event timer data
C3/15FE:	7B      	TDC            ; Clear A
C3/15FF:	AA      	TAX            ; Index: 0
C3/1600:	BDA81F  	LDA $1FA8,X    ; Timer data
C3/1603:	9D8811  	STA $1188,X    ; Make active
C3/1606:	E8      	INX            ; Index +1
C3/1607:	E01800  	CPX #$0018     ; At $1FC0?
C3/160A:	D0F4    	BNE $1600      ; Loop if not
C3/160C:	60      	RTS

Load navigation data for Save menu
C3/160D:	A01C16  	LDY #$161C     ; C3/161C
C3/1610:	4C8106  	JMP $0681      ; Load navig data

Handle D-Pad for Save menu
C3/1613:	20B007  	JSR $07B0      ; Handle D-Pad
C3/1616:	A03716  	LDY #$1637     ; C3/1637
C3/1619:	4CC306  	JMP $06C3      ; Relocate cursor

Navigation data for Save menu
C3/161C:	80      	; Wraps vertically
C3/161D:	00      	; Initial column
C3/161E:	00      	; Initial row
C3/161F:	01      	; 1 column
C3/1620:	03      	; 3 rows

Load navigation data for Load menu
C3/1621:	A03016  	LDY #$1630     ; C3/1630
C3/1624:	4C8106  	JMP $0681      ; Load navig data

Handle D-Pad for Load menu
C3/1627:	20B007  	JSR $07B0      ; Handle D-Pad
C3/162A:	A03516  	LDY #$1635     ; C3/1635
C3/162D:	4CC306  	JMP $06C3      ; Relocate cursor

Navigation data for Load menu
C3/1630:	80      	; Wraps vertically
C3/1631:	00      	; Initial column
C3/1632:	00      	; Initial row
C3/1633:	01      	; 1 column
C3/1634:	04      	; 4 rows

Cursor positions for Save and Load menus
C3/1635:	081C    	; New Game
C3/1637:	083C    	; Save file 1
C3/1639:	0874    	; Save file 2
C3/163B:	08AC    	; Save file 3

Load navigation data for save file confirmation
C3/163D:	A04C16  	LDY #$164C     ; C3/164C
C3/1640:	4C8106  	JMP $0681      ; Load navig data

Handle D-Pad for save file confirmation
C3/1643:	20B007  	JSR $07B0      ; Handle D-Pad
C3/1646:	A05116  	LDY #$1651     ; C3/1651
C3/1649:	4CC306  	JMP $06C3      ; Relocate cursor

Navigation data for save file confirmation
C3/164C:	80      	; Wraps vertically
C3/164D:	00      	; Initial column
C3/164E:	00      	; Initial row
C3/164F:	01      	; 1 column
C3/1650:	02      	; 2 rows

Cursor positions for save file confirmation
C3/1651:	BF44    	; Yes
C3/1653:	BF54    	; No

Draw Save menu, load skins, list actor sprites
C3/1655:	20BC71  	JSR $71BC      ; Clear BG2 map A
C3/1658:	209B16  	JSR $169B      ; Handle files
C3/165B:	205B3B  	JSR $3B5B      ; Load skin visuals
C3/165E:	A00519  	LDY #$1905     ; C3/1905
C3/1661:	20C403  	JSR $03C4      ; Draw top window
C3/1664:	A920    	LDA #$20       ; Palette 0
C3/1666:	8529    	STA $29        ; Color: User's
C3/1668:	A0E11A  	LDY #$1AE1     ; Text pointer
C3/166B:	202603  	JSR $0326      ; Draw "Save"
C3/166E:	4CF918  	JMP $18F9      ; Upload tilemaps

Draw Load menu, load skins, list actor sprites
C3/1671:	20BC71  	JSR $71BC      ; Clear BG2 map A
C3/1674:	9C4E1D  	STZ $1D4E      ; Skin: 1st; etc.
C3/1677:	205073  	JSR $7350      ; Reset skin colors
C3/167A:	205B3B  	JSR $3B5B      ; Load skin visuals
C3/167D:	A00519  	LDY #$1905     ; C3/1905
C3/1680:	20C403  	JSR $03C4      ; Draw top window
C3/1683:	AD4E1D  	LDA $1D4E      ; Game options
C3/1686:	2970    	AND #$70       ; Reset skin, gauge
C3/1688:	8D4E1D  	STA $1D4E      ; Save changes
C3/168B:	209B16  	JSR $169B      ; Handle files
C3/168E:	A920    	LDA #$20       ; Palette 0
C3/1690:	8529    	STA $29        ; Color: User's
C3/1692:	A0E71A  	LDY #$1AE7     ; Text pointer
C3/1695:	202603  	JSR $0326      ; Draw "New Game"
C3/1698:	4CF918  	JMP $18F9      ; Upload tilemaps

Output all save files
C3/169B:	20F473  	JSR $73F4      ; Load grayscale
C3/169E:	A920    	LDA #$20       ; Channel: 5
C3/16A0:	1443    	TRB $43        ; Halt HDMA-5
C3/16A2:	A00200  	LDY #$0002     ; Y: 2
C3/16A5:	8437    	STY $37        ; Set BG1 Y-Pos
C3/16A7:	AC551D  	LDY $1D55      ; User font color
C3/16AA:	84E7    	STY $E7        ; Memorize it
C3/16AC:	A0FF7F  	LDY #$7FFF     ; Color: White
C3/16AF:	8C551D  	STY $1D55      ; Set user's font
C3/16B2:	20B940  	JSR $40B9      ; Put in palettes
C3/16B5:	A4E7    	LDY $E7        ; Original color
C3/16B7:	8C551D  	STY $1D55      ; Restore config
C3/16BA:	A901    	LDA #$01       ; Gradient set: 1
C3/16BC:	221DCAD4	JSL $D4CA1D    ; Create gradient
C3/16C0:	20A971  	JSR $71A9      ; Clear BG1 map A
C3/16C3:	20D071  	JSR $71D0      ; Clear BG3 map A
C3/16C6:	20DA71  	JSR $71DA      ; Clear BG3 map C
C3/16C9:	201519  	JSR $1915      ; Move game's SRAM

Fork: Load save file 1
C3/16CC:	A901    	LDA #$01       ; File: 1
C3/16CE:	8566    	STA $66        ; ...
C3/16D0:	20CF15  	JSR $15CF      ; Load save file
C3/16D3:	208770  	JSR $7087      ; Move party info
C3/16D6:	203A1A  	JSR $1A3A      ; Compute checksum
C3/16D9:	20541A  	JSR $1A54      ; Test validity
C3/16DC:	8491    	STY $91        ; Save checksum
C3/16DE:	F00B    	BEQ $16EB      ; Branch if invalid
C3/16E0:	20F576  	JSR $76F5      ; List char sprites
C3/16E3:	208617  	JSR $1786      ; Draw file 1 text
C3/16E6:	20C93B  	JSR $3BC9      ; Load skin colors
C3/16E9:	8013    	BRA $16FE      ; Handle file 2

Fork: Blank file 1
C3/16EB:	202A19  	JSR $192A      ; Restore skin 1
C3/16EE:	20F576  	JSR $76F5      ; Use blank party
C3/16F1:	A920    	LDA #$20       ; Palette 0
C3/16F3:	8529    	STA $29        ; Color: White
C3/16F5:	A08D1A  	LDY #$1A8D     ; Text pointer
C3/16F8:	20F902  	JSR $02F9      ; Draw "EMPTY"
C3/16FB:	20C93B  	JSR $3BC9      ; Load skin 1 pal

Fork: Load save file 2
C3/16FE:	A902    	LDA #$02       ; File: 2
C3/1700:	8566    	STA $66        ; ...
C3/1702:	20CF15  	JSR $15CF      ; Load save file
C3/1705:	208770  	JSR $7087      ; Move party info
C3/1708:	203A1A  	JSR $1A3A      ; Compute checksum
C3/170B:	20541A  	JSR $1A54      ; Test validity
C3/170E:	8493    	STY $93        ; Save checksum
C3/1710:	F00B    	BEQ $171D      ; Branch if invalid
C3/1712:	204C77  	JSR $774C      ; List char sprites
C3/1715:	203318  	JSR $1833      ; Draw file 2 text
C3/1718:	20DD3B  	JSR $3BDD      ; Load skin colors
C3/171B:	8013    	BRA $1730      ; Handle file 3

Fork: Blank file 2
C3/171D:	202A19  	JSR $192A      ; Restore skin 1
C3/1720:	204C77  	JSR $774C      ; Use blank party
C3/1723:	A920    	LDA #$20       ; Palette 0
C3/1725:	8529    	STA $29        ; Color: White
C3/1727:	A0951A  	LDY #$1A95     ; Text pointer
C3/172A:	20F902  	JSR $02F9      ; Draw "EMPTY"
C3/172D:	20DD3B  	JSR $3BDD      ; Load skin 1 pal

Fork: Load save file 3
C3/1730:	A903    	LDA #$03       ; File: 3
C3/1732:	8566    	STA $66        ; ...
C3/1734:	20CF15  	JSR $15CF      ; Load save file
C3/1737:	208770  	JSR $7087      ; Move party info
C3/173A:	203A1A  	JSR $1A3A      ; Compute checksum
C3/173D:	20541A  	JSR $1A54      ; Test validity
C3/1740:	8495    	STY $95        ; Save checksum
C3/1742:	F00B    	BEQ $174F      ; Branch if invalid
C3/1744:	207077  	JSR $7770      ; List char sprites
C3/1747:	209618  	JSR $1896      ; Draw file 3 text
C3/174A:	20F13B  	JSR $3BF1      ; Load skin colors
C3/174D:	8013    	BRA $1762      ; Draw all windows

Fork: Blank file 3
C3/174F:	202A19  	JSR $192A      ; Restore skin 1
C3/1752:	207077  	JSR $7770      ; Use blank party
C3/1755:	A920    	LDA #$20       ; Palette 0
C3/1757:	8529    	STA $29        ; Color: White
C3/1759:	A09D1A  	LDY #$1A9D     ; Text pointer
C3/175C:	20F902  	JSR $02F9      ; Draw "EMPTY"
C3/175F:	20F13B  	JSR $3BF1      ; Load skin 1 pal

Fork: Draw windows and upload skins
C3/1762:	202A19  	JSR $192A      ; Restore SRAM
C3/1765:	20753B  	JSR $3B75      ; Upload skin A
C3/1768:	A00919  	LDY #$1909     ; C3/1909
C3/176B:	20C403  	JSR $03C4      ; Draw window A
C3/176E:	20913B  	JSR $3B91      ; Upload skin B
C3/1771:	A00D19  	LDY #$190D     ; C3/190D
C3/1774:	20C403  	JSR $03C4      ; Draw window B
C3/1777:	20AD3B  	JSR $3BAD      ; Upload skin C
C3/177A:	A01119  	LDY #$1911     ; C3/1911
C3/177D:	20C403  	JSR $03C4      ; Draw window C
C3/1780:	A0001C  	LDY #$1C00     ; Palette: 7
C3/1783:	4CA903  	JMP $03A9      ; Build skin map

Draw all text for save file 1
C3/1786:	A920    	LDA #$20       ; Palette 0
C3/1788:	8529    	STA $29        ; Color: White
C3/178A:	A0BA1A  	LDY #$1ABA     ; Text pointer
C3/178D:	20F902  	JSR $02F9      ; Draw ":"
C3/1790:	AD6318  	LDA $1863      ; Hours played
C3/1793:	206305  	JSR $0563      ; Turn into text
C3/1796:	A20D7B  	LDX #$7B0D     ; Text position
C3/1799:	203905  	JSR $0539      ; Draw hours
C3/179C:	AD6418  	LDA $1864      ; Minutes played
C3/179F:	207C05  	JSR $057C      ; Turn into text
C3/17A2:	A2137B  	LDX #$7B13     ; Text position
C3/17A5:	203905  	JSR $0539      ; Draw minutes
C3/17A8:	20B617  	JSR $17B6      ; Draw leader info
C3/17AB:	A92C    	LDA #$2C       ; Palette 3
C3/17AD:	8529    	STA $29        ; Color: Blue
C3/17AF:	A0A51A  	LDY #$1AA5     ; Text pointer
C3/17B2:	20F902  	JSR $02F9      ; Draw "TIME"
C3/17B5:	60      	RTS

Draw leader info for save file 1
C3/17B6:	7B      	TDC            ; Clear A
C3/17B7:	AA      	TAX            ; 1st: Member 1
C3/17B8:	B569    	LDA $69,X      ; Actor in slot
C3/17BA:	3029    	BMI $17E5      ; Skip if empty
C3/17BC:	202718  	JSR $1827      ; Get its address
C3/17BF:	A92C    	LDA #$2C       ; Palette 3
C3/17C1:	8529    	STA $29        ; Color: Blue
C3/17C3:	A0C61A  	LDY #$1AC6     ; Text pointer
C3/17C6:	20F902  	JSR $02F9      ; Draw "LV"
C3/17C9:	A920    	LDA #$20       ; Palette 0
C3/17CB:	8529    	STA $29        ; Color: White
C3/17CD:	A0D51A  	LDY #$1AD5     ; Text pointer
C3/17D0:	20F902  	JSR $02F9      ; Draw "/"
C3/17D3:	A00F3A  	LDY #$3A0F     ; Text position
C3/17D6:	5A      	PHY            ; Set name's
C3/17D7:	A2FD7A  	LDX #$7AFD     ; Text position
C3/17DA:	DA      	PHX            ; Set max HP's
C3/17DB:	A2F37A  	LDX #$7AF3     ; Text position
C3/17DE:	DA      	PHX            ; Set HP's
C3/17DF:	A2817A  	LDX #$7A81     ; Text position
C3/17E2:	DA      	PHX            ; Set level's
C3/17E3:	8003    	BRA $17E8      ; Draw stats
C3/17E5:	E8      	INX            ; Member slot +1
C3/17E6:	80D0    	BRA $17B8      ; Try next member

Draw leader's stats over save file
C3/17E8:	A667    	LDX $67        ; Actor's address
C3/17EA:	BD0800  	LDA $0008,X    ; Level
C3/17ED:	206305  	JSR $0563      ; Turn into text
C3/17F0:	FA      	PLX            ; Text position
C3/17F1:	203905  	JSR $0539      ; Draw 2 digits
C3/17F4:	A467    	LDY $67        ; Actor's address
C3/17F6:	20352C  	JSR $2C35      ; Truncate HP
C3/17F9:	B90900  	LDA $0009,Y    ; HP LB
C3/17FC:	85F3    	STA $F3        ; Memorize it
C3/17FE:	B90A00  	LDA $000A,Y    ; HP HB
C3/1801:	85F4    	STA $F4        ; Memorize it
C3/1803:	20B105  	JSR $05B1      ; Turn into text
C3/1806:	FA      	PLX            ; Text position
C3/1807:	201305  	JSR $0513      ; Draw 4 digits
C3/180A:	A667    	LDX $67        ; Actor address
C3/180C:	BD0B00  	LDA $000B,X    ; Max HP LB
C3/180F:	85F3    	STA $F3        ; Memorize it
C3/1811:	BD0C00  	LDA $000C,X    ; Max HP HB
C3/1814:	85F4    	STA $F4        ; Memorize it
C3/1816:	20D00D  	JSR $0DD0      ; Add gear bonus
C3/1819:	20FD0D  	JSR $0DFD      ; Cap at 9999
C3/181C:	20B105  	JSR $05B1      ; Turn into text
C3/181F:	FA      	PLX            ; Text position
C3/1820:	201305  	JSR $0513      ; Draw 4 digits
C3/1823:	7A      	PLY            ; Text position
C3/1824:	4C6A35  	JMP $356A      ; Draw actor name

Get member's SRAM block address
C3/1827:	C220    	REP #$20       ; 16-bit A
C3/1829:	8A      	TXA            ; Member slot
C3/182A:	0A      	ASL A          ; Double it
C3/182B:	AA      	TAX            ; Index it
C3/182C:	B56D    	LDA $6D,X      ; SRAM address
C3/182E:	8567    	STA $67        ; Save for later
C3/1830:	E220    	SEP #$20       ; 8-bit A
C3/1832:	60      	RTS

Draw all text for save file 2
C3/1833:	A920    	LDA #$20       ; Palette 0
C3/1835:	8529    	STA $29        ; Color: White
C3/1837:	A0BE1A  	LDY #$1ABE     ; Text pointer
C3/183A:	20F902  	JSR $02F9      ; Draw ":"
C3/183D:	AD6318  	LDA $1863      ; Hours played
C3/1840:	206305  	JSR $0563      ; Turn into text
C3/1843:	A2CD7C  	LDX #$7CCD     ; Text position
C3/1846:	203905  	JSR $0539      ; Draw 2 digits
C3/1849:	AD6418  	LDA $1864      ; Minutes played
C3/184C:	207C05  	JSR $057C      ; Turn into text
C3/184F:	A2D37C  	LDX #$7CD3     ; Text position
C3/1852:	203905  	JSR $0539      ; Draw 2 digits
C3/1855:	206318  	JSR $1863      ; Draw leader info
C3/1858:	A92C    	LDA #$2C       ; Palette 3
C3/185A:	8529    	STA $29        ; Color: Blue
C3/185C:	A0AC1A  	LDY #$1AAC     ; Text pointer
C3/185F:	20F902  	JSR $02F9      ; Draw "TIME"
C3/1862:	60      	RTS

Draw leader info for save file 2
C3/1863:	7B      	TDC            ; Clear A
C3/1864:	AA      	TAX            ; 1st: Member 1
C3/1865:	B569    	LDA $69,X      ; Actor in slot
C3/1867:	302A    	BMI $1893      ; Skip if empty
C3/1869:	202718  	JSR $1827      ; Get its address
C3/186C:	A92C    	LDA #$2C       ; Palette 3
C3/186E:	8529    	STA $29        ; Color: Blue
C3/1870:	A0CB1A  	LDY #$1ACB     ; Text pointer
C3/1873:	20F902  	JSR $02F9      ; Draw "LV"
C3/1876:	A920    	LDA #$20       ; Palette 0
C3/1878:	8529    	STA $29        ; Color: White
C3/187A:	A0D91A  	LDY #$1AD9     ; Text pointer
C3/187D:	20F902  	JSR $02F9      ; Draw "/"
C3/1880:	A0CF3B  	LDY #$3BCF     ; Text position
C3/1883:	5A      	PHY            ; Set name's
C3/1884:	A2BD7C  	LDX #$7CBD     ; Text position
C3/1887:	DA      	PHX            ; Set max HP's
C3/1888:	A2B37C  	LDX #$7CB3     ; Text position
C3/188B:	DA      	PHX            ; Set HP's
C3/188C:	A2417C  	LDX #$7C41     ; Text position
C3/188F:	DA      	PHX            ; Set level's
C3/1890:	4CE817  	JMP $17E8      ; Draw stats
C3/1893:	E8      	INX            ; Member slot +1
C3/1894:	80CF    	BRA $1865      ; Try next member

Draw all text for save file 3
C3/1896:	A920    	LDA #$20       ; Palette 0
C3/1898:	8529    	STA $29        ; Color: White
C3/189A:	A0C21A  	LDY #$1AC2     ; Text pointer
C3/189D:	20F902  	JSR $02F9      ; Draw ":"
C3/18A0:	AD6318  	LDA $1863      ; Hours played
C3/18A3:	206305  	JSR $0563      ; Turn into text
C3/18A6:	A28D7E  	LDX #$7E8D     ; Text position
C3/18A9:	203905  	JSR $0539      ; Draw 2 digits
C3/18AC:	AD6418  	LDA $1864      ; Minutes played
C3/18AF:	207C05  	JSR $057C      ; Turn into text
C3/18B2:	A2937E  	LDX #$7E93     ; Text position
C3/18B5:	203905  	JSR $0539      ; Draw 2 digits
C3/18B8:	20C618  	JSR $18C6      ; Draw leader info
C3/18BB:	A92C    	LDA #$2C       ; Palette 3
C3/18BD:	8529    	STA $29        ; Color: Blue
C3/18BF:	A0B31A  	LDY #$1AB3     ; Text pointer
C3/18C2:	20F902  	JSR $02F9      ; Draw "TIME"
C3/18C5:	60      	RTS

Draw leader info for save file 3
C3/18C6:	7B      	TDC            ; Clear A
C3/18C7:	AA      	TAX            ; 1st: Member 1
C3/18C8:	B569    	LDA $69,X      ; Actor in slot
C3/18CA:	302A    	BMI $18F6      ; Skip if empty
C3/18CC:	202718  	JSR $1827      ; Get its address
C3/18CF:	A92C    	LDA #$2C       ; Palette 3
C3/18D1:	8529    	STA $29        ; Color: Blue
C3/18D3:	A0D01A  	LDY #$1AD0     ; Text pointer
C3/18D6:	20F902  	JSR $02F9      ; Draw "LV"
C3/18D9:	A920    	LDA #$20       ; Palette 0
C3/18DB:	8529    	STA $29        ; Color: White
C3/18DD:	A0DD1A  	LDY #$1ADD     ; Text pointer
C3/18E0:	20F902  	JSR $02F9      ; Draw "/"
C3/18E3:	A08F3D  	LDY #$3D8F     ; Text position
C3/18E6:	5A      	PHY            ; Set name's
C3/18E7:	A27D7E  	LDX #$7E7D     ; Text position
C3/18EA:	DA      	PHX            ; Set max HP's
C3/18EB:	A2737E  	LDX #$7E73     ; Text position
C3/18EE:	DA      	PHX            ; Set HP's
C3/18EF:	A2017E  	LDX #$7E01     ; Text position
C3/18F2:	DA      	PHX            ; Set level's
C3/18F3:	4CE817  	JMP $17E8      ; Draw stats
C3/18F6:	E8      	INX            ; Member slot +1
C3/18F7:	80CF    	BRA $18C8      ; Try next member

Upload tilemaps for Save or Load menu
C3/18F9:	20930E  	JSR $0E93      ; Upload BG1 A+B
C3/18FC:	20BD0E  	JSR $0EBD      ; Upload BG2 A+B
C3/18FF:	20D90E  	JSR $0ED9      ; Upload BG3 A+B
C3/1902:	4CE70E  	JMP $0EE7      ; Upload BG3 C+D

Window layout for Save and Load menus
C3/1905:	CB581C02	; 30x4 at $58CB (Top window)
C3/1909:	CB591C05	; 30x7 at $59CB (File A)
C3/190D:	8B5B1C05	; 30x7 at $5B8B (File B)
C3/1911:	4B5D1C05	; 30x7 at $5D4B (File C)

Back up SRAM block
C3/1915:	A08DAC  	LDY #$AC8D     ; 7E/AC8D
C3/1918:	8C8121  	STY $2181      ; Set WRAM LBs
C3/191B:	A600    	LDX $00        ; Index: 0
C3/191D:	BD0016  	LDA $1600,X    ; SRAM data
C3/1920:	8D8021  	STA $2180      ; Put in WRAM
C3/1923:	E8      	INX            ; Index +1
C3/1924:	E0000A  	CPX #$0A00     ; At $2000?
C3/1927:	D0F4    	BNE $191D      ; Loop if not
C3/1929:	60      	RTS

Restore SRAM block
C3/192A:	A600    	LDX $00        ; Index: 0
C3/192C:	BF8DAC7E	LDA $7EAC8D,X  ; Data backup
C3/1930:	9D0016  	STA $1600,X    ; Restore it
C3/1933:	E8      	INX            ; Index +1
C3/1934:	E0000A  	CPX #$0A00     ; At 7E/B68D?
C3/1937:	D0F3    	BNE $192C      ; Loop if not
C3/1939:	60      	RTS

Set to condense BG3 text (save file confirmation, Colosseum matchup)
C3/193A:	A902    	LDA #$02       ; 1Rx2B to PPU
C3/193C:	8D5043  	STA $4350      ; Set DMA mode
C3/193F:	A912    	LDA #$12       ; $2112
C3/1941:	8D5143  	STA $4351      ; To BG3 V-Scroll
C3/1944:	A05919  	LDY #$1959     ; C3/1959
C3/1947:	8C5243  	STY $4352      ; Set src LBs
C3/194A:	A9C3    	LDA #$C3       ; Bank: C3
C3/194C:	8D5443  	STA $4354      ; Set src HB
C3/194F:	A9C3    	LDA #$C3       ; ...
C3/1951:	8D5743  	STA $4357      ; Set indir HB
C3/1954:	A920    	LDA #$20       ; Channel: 5
C3/1956:	0443    	TSB $43        ; Queue HDMA-5
C3/1958:	60      	RTS

Text shifting table for the above
C3/1959:	20 0000 	; 32 lines, shift by 0 px
C3/195C:	0C 0400 	; 12 lines, shift by 4 px
C3/195F:	0C 0800 	; 12 lines, shift by 8 px
C3/1962:	08 C8FF 	; 8 lines, shift by -38 px
C3/1965:	50 0000 	; 80 lines, shift by 0 px
C3/1968:	58 0000 	; 88 lines, shift by 0 px
C3/196B:	00      	; End

Create actor sprites for Save or Load menu
C3/196C:	A600    	LDX $00        ; Actor slot: 1
C3/196E:	BF71AA7E	LDA $7EAA71,X  ; Empty slot?
C3/1972:	306C    	BMI $19E0      ; Skip if so
C3/1974:	DA      	PHX            ; Save slot
C3/1975:	DA      	PHX            ; Save slot
C3/1976:	A903    	LDA #$03       ; Min slot: 24
C3/1978:	A0301A  	LDY #$1A30     ; C3/1A30
C3/197B:	20DE11  	JSR $11DE      ; Queue OAM fn
C3/197E:	9B      	TXY            ; Queue index
C3/197F:	FA      	PLX            ; Actor slot
C3/1980:	8B      	PHB            ; Save DB
C3/1981:	A97E    	LDA #$7E       ; Bank: 7E
C3/1983:	48      	PHA            ; Put on stack
C3/1984:	AB      	PLB            ; Set DB to 7E
C3/1985:	A566    	LDA $66        ; On "New Game"?
C3/1987:	F011    	BEQ $199A      ; Branch if so
C3/1989:	C901    	CMP #$01       ; On file 1?
C3/198B:	F01F    	BEQ $19AC      ; Branch if so
C3/198D:	C902    	CMP #$02       ; On file 2?
C3/198F:	F012    	BEQ $19A3      ; Branch if so
C3/1991:	BF241AC3	LDA $C31A24,X  ; OAM complements
C3/1995:	994937  	STA $3749,Y    ; Set sprite's
C3/1998:	8019    	BRA $19B3      ; Set coords/ptr

Fork: New Game
C3/199A:	BF001AC3	LDA $C31A00,X  ; OAM complements
C3/199E:	994937  	STA $3749,Y    ; Set sprite's
C3/19A1:	8010    	BRA $19B3      ; Set coords/ptr

Fork: Save file 2
C3/19A3:	BF181AC3	LDA $C31A18,X  ; OAM complements
C3/19A7:	994937  	STA $3749,Y    ; Set sprite's
C3/19AA:	8007    	BRA $19B3      ; Set coords/ptr

Fork: Save file 1
C3/19AC:	BF0C1AC3	LDA $C31A0C,X  ; OAM complements
C3/19B0:	994937  	STA $3749,Y    ; Set sprite's
C3/19B3:	A9D8    	LDA #$D8       ; Bank: D8
C3/19B5:	99CA35  	STA $35CA,Y    ; Set anim ptr HB
C3/19B8:	7B      	TDC            ; Clear A
C3/19B9:	99CB33  	STA $33CB,Y    ; No use...
C3/19BC:	994B34  	STA $344B,Y    ; No use...
C3/19BF:	BFE819C3	LDA $C319E8,X  ; X position
C3/19C3:	99CA33  	STA $33CA,Y    ; Set sprite's
C3/19C6:	BFF419C3	LDA $C319F4,X  ; Y position
C3/19CA:	994A34  	STA $344A,Y    ; Set sprite's
C3/19CD:	BF71AA7E	LDA $7EAA71,X  ; Graphics set
C3/19D1:	C220    	REP #$20       ; 16-bit A
C3/19D3:	0A      	ASL A          ; Double it
C3/19D4:	AA      	TAX            ; Index it
C3/19D5:	BFA1E9D8	LDA $D8E9A1,X  ; Anim table ptr
C3/19D9:	99C932  	STA $32C9,Y    ; Set sprite's
C3/19DC:	E220    	SEP #$20       ; 8-bit A
C3/19DE:	AB      	PLB            ; Restore DB
C3/19DF:	FA      	PLX            ; Actor slot
C3/19E0:	E8      	INX            ; Point to next
C3/19E1:	E00C00  	CPX #$000C     ; Done all 12?
C3/19E4:	D088    	BNE $196E      ; Loop if not
C3/19E6:	38      	SEC            ; ...
C3/19E7:	60      	RTS

X positions for actors on save files
C3/19E8:	50 68 80 98	; File 1
C3/19EC:	50 68 80 98	; File 2
C3/19F0:	50 68 80 98	; File 3

Y positions for actors on save files
C3/19F4:	40 40 40 40	; File 1
C3/19F8:	78 78 78 78	; File 2
C3/19FC:	B0 B0 B0 B0	; File 3

Actors' OAM complements when on "New Game"
C3/1A00:	02 02 02 02	; File 1: Grayscale
C3/1A04:	02 02 02 02	; File 2: Grayscale
C3/1A08:	02 02 02 02	; File 3: Grayscale

Actors' OAM complements when on save file 1
C3/1A0C:	00 00 00 00	; File 1: None
C3/1A10:	02 02 02 02	; File 2: Grayscale
C3/1A14:	02 02 02 02	; File 3: Grayscale

Actors' OAM complements when on save file 2
C3/1A18:	02 02 02 02	; File 1: Grayscale
C3/1A1C:	00 00 00 00	; File 2: None
C3/1A20:	02 02 02 02	; File 3: Grayscale

Actors' OAM complements when on save file 3
C3/1A24:	02 02 02 02	; File 1: Grayscale
C3/1A28:	02 02 02 02	; File 2: Grayscale
C3/1A2C:	00 00 00 00	; File 3: None

Display actor's sprite on save file
C3/1A30:	A62D    	LDX $2D        ; Queue index
C3/1A32:	207112  	JSR $1271      ; Set pose timer
C3/1A35:	208C12  	JSR $128C      ; Define OAM
C3/1A38:	18      	CLC            ; Set to dequeue
C3/1A39:	60      	RTS

Compute SRAM checksum
C3/1A3A:	64E7    	STZ $E7        ; Sum LB: 0
C3/1A3C:	64E8    	STZ $E8        ; Sum HB: 0
C3/1A3E:	A600    	LDX $00        ; Index: 0
C3/1A40:	18      	CLC            ; Prepare ADC
C3/1A41:	BD0016  	LDA $1600,X    ; SRAM data
C3/1A44:	65E7    	ADC $E7        ; Add sum LB
C3/1A46:	85E7    	STA $E7        ; Set sum LB
C3/1A48:	7B      	TDC            ; Clear A
C3/1A49:	65E8    	ADC $E8        ; Add HB + C
C3/1A4B:	85E8    	STA $E8        ; Set sum HB
C3/1A4D:	E8      	INX            ; Index +1
C3/1A4E:	E0FE09  	CPX #$09FE     ; At checksum?
C3/1A51:	D0EE    	BNE $1A41      ; Loop if not
C3/1A53:	60      	RTS

Load and validate SRAM checksum (buggy if zero)
C3/1A54:	C220    	REP #$20       ; 16-bit A
C3/1A56:	A5E7    	LDA $E7        ; Actual checksum
C3/1A58:	CDFE1F  	CMP $1FFE      ; Sum in save file
C3/1A5B:	D002    	BNE $1A5F      ; Use 0 if unalike
C3/1A5D:	8001    	BRA $1A60      ; Skip a line
C3/1A5F:	7B      	TDC            ; Clear checksum
C3/1A60:	A8      	TAY            ; Put sum in Y
C3/1A61:	E220    	SEP #$20       ; 8-bit A
C3/1A63:	60      	RTS

53: Queue fade-out for save menu
C3/1A64:	20EA30  	JSR $30EA      ; Queue fade-out
C3/1A67:	A00800  	LDY #$0008     ; Frames: 8
C3/1A6A:	8420    	STY $20        ; Set fade timer
C3/1A6C:	A954    	LDA #$54       ; C3/1A82
C3/1A6E:	8526    	STA $26        ; Next: Wait
C3/1A70:	4C6C19  	JMP $196C      ; Refresh actors

52: Queue fade-in for save menu
C3/1A73:	20F130  	JSR $30F1      ; Queue fade-in
C3/1A76:	A00800  	LDY #$0008     ; Frames: 8
C3/1A79:	8420    	STY $20        ; Set fade timer
C3/1A7B:	A954    	LDA #$54       ; C3/1A82
C3/1A7D:	8526    	STA $26        ; Next: Wait
C3/1A7F:	4C6C19  	JMP $196C      ; Create actors

54: Wait while save menu fades in or out
C3/1A82:	A420    	LDY $20        ; Timer expired?
C3/1A84:	D004    	BNE $1A8A      ; Branch if not
C3/1A86:	A527    	LDA $27        ; Queued command
C3/1A88:	8526    	STA $26        ; Execute it next
C3/1A8A:	4C6C19  	JMP $196C      ; Refresh actors

Positioned text for save menus
C3/1A8D:	4F7A 242C2F333800              ; EMPTY
C3/1A95:	0F7C 242C2F333800              ; EMPTY
C3/1A9D:	CF7D 242C2F333800              ; EMPTY
C3/1AA5:	CF7A 33282C2400                ; TIME
C3/1AAC:	8F7C 33282C2400                ; TIME
C3/1AB3:	4F7E 33282C2400                ; TIME
C3/1ABA:	117B CF00                      ; :
C3/1ABE:	D17C CF00                      ; :
C3/1AC2:	917E CF00                      ; :
C3/1AC6:	7B7A 2B3500                    ; LV
C3/1ACB:	3B7C 2B3500                    ; LV
C3/1AD0:	FB7D 2B3500                    ; LV
C3/1AD5:	FB7A CE00                      ; /
C3/1AD9:	BB7C CE00                      ; /
C3/1ADD:	7B7E CE00                      ; /
C3/1AE1:	2579 7AC52400                  ; Save
C3/1AE7:	2379 94C0C530C5A000            ; New Game

04: Initialize main menu
C3/1AF0:	20F735  	JSR $35F7      ; Reset/Stop stuff
C3/1AF3:	200E1C  	JSR $1C0E      ; Load portraits
C3/1AF6:	20F40F  	JSR $0FF4      ; Stop VRAM DMA B
C3/1AF9:	203F3B  	JSR $3B3F      ; Set Win2 bounds
C3/1AFC:	A904    	LDA #$04       ; Channel: 2
C3/1AFE:	0443    	TSB $43        ; Queue Win1 HDMA
C3/1B00:	20F40F  	JSR $0FF4      ; Again...
C3/1B03:	207670  	JSR $7076      ; Reset BGs' X/Y
C3/1B06:	A903    	LDA #$03       ; 64x64 at $0000
C3/1B08:	8D0721  	STA $2107      ; Set BG1 map loc
C3/1B0B:	A943    	LDA #$43       ; 64x64 at $4000
C3/1B0D:	8D0921  	STA $2109      ; Set BG3 map loc
C3/1B10:	A9C0    	LDA #$C0       ; Channels: 6, 7
C3/1B12:	1443    	TRB $43        ; Halt HDMA 6+7
C3/1B14:	A902    	LDA #$02       ; Main cursor: On
C3/1B16:	8546    	STA $46        ; Bar/Blinker: Off
C3/1B18:	209031  	JSR $3190      ; Draw menu
C3/1B1B:	A900    	LDA #$00       ; Min slot: 0
C3/1B1D:	A0DD2F  	LDY #$2FDD     ; C3/2FDD
C3/1B20:	20DE11  	JSR $11DE      ; Queue D-Pad fn
C3/1B23:	203308  	JSR $0833      ; Queue cursor OAM
C3/1B26:	201636  	JSR $3616      ; HDMA: MS desig.
C3/1B29:	A00200  	LDY #$0002     ; Y: 2
C3/1B2C:	8437    	STY $37        ; Set BG1 Y-Pos
C3/1B2E:	206B37  	JSR $376B      ; Set to shift BG3
C3/1B31:	A905    	LDA #$05       ; C3/1E0A
C3/1B33:	8527    	STA $27        ; Queue: Sustain menu
C3/1B35:	A901    	LDA #$01       ; C3/1DE4
C3/1B37:	8526    	STA $26        ; Next: Fade-in
C3/1B39:	4C0936  	JMP $3609      ; BRT:1 + NMI

07: Initialize Item menu
C3/1B3C:	20481B  	JSR $1B48      ; Init list vars
C3/1B3F:	20641B  	JSR $1B64      ; Draw menu; cursor
C3/1B42:	20741B  	JSR $1B74      ; Shift & OBJ & Fade
C3/1B45:	4C941B  	JMP $1B94      ; Queue: Choice 1

Initialize item list variables (Item, Colosseum)
C3/1B48:	20F735  	JSR $35F7      ; Reset/Stop stuff
C3/1B4B:	20FF1B  	JSR $1BFF      ; Queue desc anim
C3/1B4E:	207670  	JSR $7076      ; Reset BGs' X/Y
C3/1B51:	644A    	STZ $4A        ; List scroll: 0
C3/1B53:	6449    	STZ $49        ; Top BG1 WR row: 1
C3/1B55:	A976    	LDA #$76       ; Top row: 119th
C3/1B57:	855C    	STA $5C        ; Set scroll limit
C3/1B59:	A90A    	LDA #$0A       ; Onscreen rows: 10
C3/1B5B:	855A    	STA $5A        ; Set rows per page
C3/1B5D:	A902    	LDA #$02       ; Onscreen cols: 2
C3/1B5F:	855B    	STA $5B        ; Set cols per page
C3/1B61:	4CA384  	JMP $84A3      ; Load navig data

Draw Item menu, position cursor in inventory
C3/1B64:	AD4E1D  	LDA $1D4E      ; Game options
C3/1B67:	2940    	AND #$40       ; Cursor memory?
C3/1B69:	F003    	BEQ $1B6E      ; Branch if not
C3/1B6B:	20170E  	JSR $0E17      ; Restore cursor
C3/1B6E:	20AC84  	JSR $84AC      ; Relocate cursor
C3/1B71:	4C5285  	JMP $8552      ; Draw menu; elems

Initiate text shifting, sprites, fade-in (Item, Colosseum)
C3/1B74:	20DA85  	JSR $85DA      ; Set to shift text
C3/1B77:	203308  	JSR $0833      ; Queue cursor OAM
C3/1B7A:	20A409  	JSR $09A4      ; Create scrollbar
C3/1B7D:	C220    	REP #$20       ; 16-bit A
C3/1B7F:	A9EA00  	LDA #$00EA     ; V-Speed: 0.914 px
C3/1B82:	9F4A357E	STA $7E354A,X  ; Set scrollbar's
C3/1B86:	A95800  	LDA #$0058     ; Y: 88
C3/1B89:	9FCA347E	STA $7E34CA,X  ; Set scrollbar's
C3/1B8D:	E220    	SEP #$20       ; 8-bit A
C3/1B8F:	A901    	LDA #$01       ; C3/1DE4
C3/1B91:	8526    	STA $26        ; Next: Fade-in
C3/1B93:	60      	RTS

Queue Item menu choice 1, prepare fade-in
C3/1B94:	A908    	LDA #$08       ; C3/1F5D
C3/1B96:	8527    	STA $27        ; Queue: Choice 1
C3/1B98:	4C0936  	JMP $3609      ; BRT:1 + NMI

77: Return from item usage menu
C3/1B9B:	20481B  	JSR $1B48      ; Init list vars
C3/1B9E:	A58E    	LDA $8E        ; Old cursor column
C3/1BA0:	854D    	STA $4D        ; Set onscreen col
C3/1BA2:	A48E    	LDY $8E        ; Old cursor loc
C3/1BA4:	844F    	STY $4F        ; Set as current
C3/1BA6:	A590    	LDA $90        ; Old scroll pos
C3/1BA8:	854A    	STA $4A        ; Set as current
C3/1BAA:	A54A    	LDA $4A        ; ...
C3/1BAC:	85E0    	STA $E0        ; Memorize it...
C3/1BAE:	A550    	LDA $50        ; List row
C3/1BB0:	38      	SEC            ; Prepare SBC
C3/1BB1:	E5E0    	SBC $E0        ; Sub scroll pos
C3/1BB3:	854E    	STA $4E        ; Set cursor row
C3/1BB5:	20AC84  	JSR $84AC      ; Relocate cursor
C3/1BB8:	205285  	JSR $8552      ; Draw menu; elems
C3/1BBB:	20741B  	JSR $1B74      ; Shift & OBJ & Fade
C3/1BBE:	4C941B  	JMP $1B94      ; Queue: Choice 1

09: Initialize Skills menu
C3/1BC1:	20F735  	JSR $35F7      ; Reset/Stop stuff
C3/1BC4:	7B      	TDC            ; Clear A
C3/1BC5:	A528    	LDA $28        ; Member slot
C3/1BC7:	AA      	TAX            ; Index it
C3/1BC8:	B569    	LDA $69,X      ; Actor in slot
C3/1BCA:	220600C2	JSL $C20006    ; Get actor stats
C3/1BCE:	200E1C  	JSR $1C0E      ; Load portraits
C3/1BD1:	209C71  	JSR $719C      ; Set Win1 bounds
C3/1BD4:	644A    	STZ $4A        ; List scroll: 0
C3/1BD6:	6449    	STZ $49        ; Top BG1 WR row: 1
C3/1BD8:	208254  	JSR $5482      ; Set to shift text
C3/1BDB:	203D53  	JSR $533D      ; Draw menu, etc.
C3/1BDE:	201352  	JSR $5213      ; Load navig data
C3/1BE1:	AD4E1D  	LDA $1D4E      ; Game options
C3/1BE4:	2940    	AND #$40       ; Cursor memory?
C3/1BE6:	F003    	BEQ $1BEB      ; Branch if not
C3/1BE8:	206A0E  	JSR $0E6A      ; Restore cursor
C3/1BEB:	201C52  	JSR $521C      ; Relocate cursor
C3/1BEE:	203308  	JSR $0833      ; Queue cursor OAM
C3/1BF1:	20FF1B  	JSR $1BFF      ; Queue desc anim
C3/1BF4:	A901    	LDA #$01       ; C3/1DE4
C3/1BF6:	8526    	STA $26        ; Next: Fade-in
C3/1BF8:	A90A    	LDA #$0A       ; C3/205A
C3/1BFA:	8527    	STA $27        ; Queue: Sustain menu
C3/1BFC:	4C0936  	JMP $3609      ; BRT:1 + NMI

Set to update and upload description
C3/1BFF:	20D9B0  	JSR $B0D9      ; Clear desc GFX
C3/1C02:	2001B3  	JSR $B301      ; Queue desc upload
C3/1C05:	A900    	LDA #$00       ; Min slot: 0
C3/1C07:	A051B1  	LDY #$B151     ; C3/B151
C3/1C0A:	20DE11  	JSR $11DE      ; Queue desc update
C3/1C0D:	60      	RTS

Load portrait graphics and colors for party
C3/1C0E:	208770  	JSR $7087      ; Get party info
C3/1C11:	201676  	JSR $7616      ; Load graphics
C3/1C14:	209D73  	JSR $739D      ; Load colors
C3/1C17:	A905    	LDA #$05       ; Show cursor: Y
C3/1C19:	0445    	TSB $45        ; Unfreeze CGRAM
C3/1C1B:	4C3D15  	JMP $153D      ; Refresh CGRAM

35: Initialize Equip menu
C3/1C1E:	20231C  	JSR $1C23      ; Init variables
C3/1C21:	801A    	BRA $1C3D      ; Draw menu, etc.

Initialize variables for Equip menu
C3/1C23:	20F735  	JSR $35F7      ; Reset/Stop stuff
C3/1C26:	209C71  	JSR $719C      ; Set Win1 bounds
C3/1C29:	A906    	LDA #$06       ; Main cursor: On
C3/1C2B:	0446    	TSB $46        ; Set menu flag
C3/1C2D:	644A    	STZ $4A        ; List scroll: 0
C3/1C2F:	6449    	STZ $49        ; Top BG1 WR row: 1
C3/1C31:	20A59C  	JSR $9CA5      ; Set to shift text
C3/1C34:	20C595  	JSR $95C5      ; Load navig data
C3/1C37:	20CE95  	JSR $95CE      ; Relocate cursor
C3/1C3A:	4C3308  	JMP $0833      ; Queue cursor OAM

Draw Equip menu, update status based on gear, trigger fade-in
C3/1C3D:	20DB97  	JSR $97DB      ; Draw menu; status
C3/1C40:	A901    	LDA #$01       ; C3/1DE4
C3/1C42:	8526    	STA $26        ; Next: Fade-in
C3/1C44:	A936    	LDA #$36       ; C3/9E10
C3/1C46:	8527    	STA $27        ; Queue: Option list
C3/1C48:	4C0936  	JMP $3609      ; BRT:1 + NMI

7E: Swap actor in Equip menu, retain Equip mode
C3/1C4B:	20671C  	JSR $1C67      ; Draw menu, etc.
C3/1C4E:	203E9E  	JSR $9E3E      ; Draw blue "EQUIP"
C3/1C51:	20701C  	JSR $1C70      ; Cursor & Fade-in
C3/1C54:	A955    	LDA #$55       ; C3/A073
C3/1C56:	4C7B1C  	JMP $1C7B      ; Queue slot choice

7F: Swap actor in Equip menu, retain Remove mode
C3/1C59:	20671C  	JSR $1C67      ; Draw menu, etc.
C3/1C5C:	20459E  	JSR $9E45      ; Draw blue "REMOVE"
C3/1C5F:	20701C  	JSR $1C70      ; Cursor & Fade-in
C3/1C62:	A956    	LDA #$56       ; C3/A0BE
C3/1C64:	4C7B1C  	JMP $1C7B      ; Queue slot choice

Redraw Equip menu after actor swap
C3/1C67:	20231C  	JSR $1C23      ; Reset variables
C3/1C6A:	20DB97  	JSR $97DB      ; Draw menu; status
C3/1C6D:	4C039E  	JMP $9E03      ; Switch windows

Put cursor on first gear slot, trigger fade-in
C3/1C70:	20E195  	JSR $95E1      ; Load navig data
C3/1C73:	20EA95  	JSR $95EA      ; Relocate cursor
C3/1C76:	A901    	LDA #$01       ; C3/1DE4
C3/1C78:	8526    	STA $26        ; Next: Fade-in
C3/1C7A:	60      	RTS

Set queued menu command, prepare fade-in
C3/1C7B:	8527    	STA $27        ; Set queued cmd
C3/1C7D:	4C0936  	JMP $3609      ; BRT:1 + NMI

6D: Open Equip menu after optimizing gear
C3/1C80:	20231C  	JSR $1C23      ; Init variables
C3/1C83:	20DF9E  	JSR $9EDF      ; Optimize gear
C3/1C86:	A902    	LDA #$02       ; Menu: Equip
C3/1C88:	8525    	STA $25        ; Set submenu
C3/1C8A:	80B1    	BRA $1C3D      ; Draw menu, etc.

6E: Open Equip menu after removing all gear
C3/1C8C:	20231C  	JSR $1C23      ; Init variables
C3/1C8F:	20979E  	JSR $9E97      ; Remove gear
C3/1C92:	A902    	LDA #$02       ; Menu: Equip
C3/1C94:	8525    	STA $25        ; Set submenu
C3/1C96:	80A5    	BRA $1C3D      ; Draw menu, etc.

38: Initialize party gear overview
C3/1C98:	20F735  	JSR $35F7      ; Reset/Stop stuff
C3/1C9B:	20869C  	JSR $9C86      ; Set to shift text
C3/1C9E:	206296  	JSR $9662      ; Draw menu
C3/1CA1:	A901    	LDA #$01       ; C3/1DE4
C3/1CA3:	8526    	STA $26        ; Next: Fade-in
C3/1CA5:	A939    	LDA #$39       ; C3/29D0
C3/1CA7:	8527    	STA $27        ; Queue: Sustain menu
C3/1CA9:	4C0936  	JMP $3609      ; BRT:1 + NMI

0B: Initialize Status menu
C3/1CAC:	20F735  	JSR $35F7      ; Reset/Stop stuff
C3/1CAF:	205468  	JSR $6854      ; Set to shift text
C3/1CB2:	206263  	JSR $6362      ; Draw menu; portrait
C3/1CB5:	20C31C  	JSR $1CC3      ; Init cursor data
C3/1CB8:	A901    	LDA #$01       ; C3/1DE4
C3/1CBA:	8526    	STA $26        ; Next: Fade-in
C3/1CBC:	A90C    	LDA #$0C       ; C3/2255
C3/1CBE:	8527    	STA $27        ; Queue: Sustain menu
C3/1CC0:	4C0936  	JMP $3609      ; BRT:1 + NMI

Initialize cursor data for Status menu
C3/1CC3:	7B      	TDC            ; Clear A
C3/1CC4:	A528    	LDA $28        ; Member slot
C3/1CC6:	0A      	ASL A          ; Double it
C3/1CC7:	AA      	TAX            ; Index it
C3/1CC8:	B46D    	LDY $6D,X      ; Actor's address
C3/1CCA:	B90000  	LDA $0000,Y    ; Actor
C3/1CCD:	C90C    	CMP #$0C       ; Gogo?
C3/1CCF:	D00D    	BNE $1CDE      ; Abort if not
C3/1CD1:	20C737  	JSR $37C7      ; Load navig data
C3/1CD4:	20D037  	JSR $37D0      ; Relocate cursor
C3/1CD7:	A906    	LDA #$06       ; Main cursor: On
C3/1CD9:	0446    	TSB $46        ; Set menu flag
C3/1CDB:	4C3308  	JMP $0833      ; Queue cursor OAM
C3/1CDE:	A906    	LDA #$06       ; Main cursor: Off
C3/1CE0:	1446    	TRB $46        ; Set menu flag
C3/1CE2:	60      	RTS

0D: Initialize Config menu
C3/1CE3:	20F735  	JSR $35F7      ; Reset/Stop stuff
C3/1CE6:	644A    	STZ $4A        ; Screen: 1st
C3/1CE8:	20203B  	JSR $3B20      ; Set Win2 bounds
C3/1CEB:	206F39  	JSR $396F      ; Draw menu, etc.
C3/1CEE:	202739  	JSR $3927      ; Load navig data
C3/1CF1:	A55F    	LDA $5F        ; Return position
C3/1CF3:	854E    	STA $4E        ; Set cursor row
C3/1CF5:	203039  	JSR $3930      ; Relocate cursor
C3/1CF8:	203308  	JSR $0833      ; Queue cursor OAM
C3/1CFB:	A901    	LDA #$01       ; C3/1DE4
C3/1CFD:	8526    	STA $26        ; Next: Fade-in
C3/1CFF:	A90E    	LDA #$0E       ; C3/2325
C3/1D01:	8527    	STA $27        ; Queue: Sustain menu
C3/1D03:	4C0936  	JMP $3609      ; BRT:1 + NMI

13: Initialize Save menu
C3/1D06:	20F735  	JSR $35F7      ; Reset/Stop stuff
C3/1D09:	A00200  	LDY #$0002     ; Y: 2
C3/1D0C:	8437    	STY $37        ; Set BG1 Y-Pos
C3/1D0E:	206B37  	JSR $376B      ; Set to shift BG3...
C3/1D11:	A9E3    	LDA #$E3       ; CH: 0-1, 5-7
C3/1D13:	1443    	TRB $43        ; Halt HDMA channels
C3/1D15:	205516  	JSR $1655      ; Draw menu, get chars
C3/1D18:	205B74  	JSR $745B      ; Load actor colors
C3/1D1B:	201874  	JSR $7418      ; Load cursor colors
C3/1D1E:	200D16  	JSR $160D      ; Load navig data
C3/1D21:	A491    	LDY $91        ; File 1 checksum
C3/1D23:	D008    	BNE $1D2D      ; Branch if not 0
C3/1D25:	A493    	LDY $93        ; File 2 checksum
C3/1D27:	D004    	BNE $1D2D      ; Branch if not 0
C3/1D29:	A495    	LDY $95        ; File 3 checksum
C3/1D2B:	F006    	BEQ $1D33      ; Branch if 0
C3/1D2D:	AD2402  	LDA $0224      ; Last viewed file
C3/1D30:	3A      	DEC A          ; Now 0-2
C3/1D31:	854E    	STA $4E        ; Set cursor row
C3/1D33:	201616  	JSR $1616      ; Relocate cursor
C3/1D36:	203308  	JSR $0833      ; Queue cursor OAM
C3/1D39:	A54B    	LDA $4B        ; Cursor slot
C3/1D3B:	1A      	INC A          ; Now 1-3
C3/1D3C:	8566    	STA $66        ; Set active file
C3/1D3E:	A952    	LDA #$52       ; C3/1A73
C3/1D40:	8526    	STA $26        ; Next: Fade-in
C3/1D42:	A914    	LDA #$14       ; C3/25B3
C3/1D44:	8527    	STA $27        ; Queue: Sustain menu
C3/1D46:	4C0936  	JMP $3609      ; BRT:1 + NMI

15: Initialize save confirmation
C3/1D49:	20F735  	JSR $35F7      ; Reset/Stop stuff
C3/1D4C:	208770  	JSR $7087      ; Get party info
C3/1D4F:	20C331  	JSR $31C3      ; Draw menu
C3/1D52:	203D16  	JSR $163D      ; Load navig data
C3/1D55:	204616  	JSR $1646      ; Relocate cursor
C3/1D58:	203308  	JSR $0833      ; Queue cursor OAM
C3/1D5B:	203A19  	JSR $193A      ; Set to shift text
C3/1D5E:	A916    	LDA #$16       ; C3/2610
C3/1D60:	8527    	STA $27        ; Queue: Sustain menu
C3/1D62:	A901    	LDA #$01       ; C3/1DE4
C3/1D64:	8526    	STA $26        ; Next: Fade-in
C3/1D66:	4C0936  	JMP $3609      ; BRT:1 + NMI

20: Initialize Load menu
C3/1D69:	20F735  	JSR $35F7      ; Reset/Stop stuff
C3/1D6C:	A00200  	LDY #$0002     ; Y: 2
C3/1D6F:	8437    	STY $37        ; Set BG1 Y-Pos
C3/1D71:	206B37  	JSR $376B      ; Set to shift BG3...
C3/1D74:	A9E3    	LDA #$E3       ; CH: 0-1, 5-7
C3/1D76:	1443    	TRB $43        ; Halt HDMA channels
C3/1D78:	A400    	LDY $00        ; X: 0
C3/1D7A:	8435    	STY $35        ; Set BG1 X-Pos
C3/1D7C:	8439    	STY $39        ; Set BG2 X-Pos
C3/1D7E:	843D    	STY $3D        ; Set BG3 X-Pos
C3/1D80:	A902    	LDA #$02       ; Main cursor: On
C3/1D82:	8546    	STA $46        ; Bar/Blinker: Off
C3/1D84:	207116  	JSR $1671      ; Draw menu, get chars
C3/1D87:	205B74  	JSR $745B      ; Load actor colors
C3/1D8A:	201874  	JSR $7418      ; Load cursor colors
C3/1D8D:	202116  	JSR $1621      ; Load navig data
C3/1D90:	A491    	LDY $91        ; File 1 checksum
C3/1D92:	D008    	BNE $1D9C      ; Branch if not 0
C3/1D94:	A493    	LDY $93        ; File 2 checksum
C3/1D96:	D004    	BNE $1D9C      ; Branch if not 0
C3/1D98:	A495    	LDY $95        ; File 3 checksum
C3/1D9A:	F006    	BEQ $1DA2      ; Branch if 0
C3/1D9C:	AFF07F30	LDA $307FF0    ; Last altered file
C3/1DA0:	854E    	STA $4E        ; Set cursor row
C3/1DA2:	202A16  	JSR $162A      ; Relocate cursor
C3/1DA5:	203308  	JSR $0833      ; Queue cursor OAM
C3/1DA8:	A54B    	LDA $4B        ; Cursor slot
C3/1DAA:	8566    	STA $66        ; Set active file
C3/1DAC:	A921    	LDA #$21       ; C3/2A5D
C3/1DAE:	8527    	STA $27        ; Queue: Sustain menu
C3/1DB0:	A952    	LDA #$52       ; C3/1A73
C3/1DB2:	8526    	STA $26        ; Next: Fade-in
C3/1DB4:	4C0936  	JMP $3609      ; BRT:1 + NMI

22: Initialize load confirmation
C3/1DB7:	20F735  	JSR $35F7      ; Reset/Stop stuff
C3/1DBA:	208770  	JSR $7087      ; Get party info
C3/1DBD:	20E731  	JSR $31E7      ; Draw menu
C3/1DC0:	203D16  	JSR $163D      ; Load navig data
C3/1DC3:	204616  	JSR $1646      ; Relocate cursor
C3/1DC6:	203308  	JSR $0833      ; Queue cursor OAM
C3/1DC9:	203A19  	JSR $193A      ; Set to shift text
C3/1DCC:	A923    	LDA #$23       ; C3/2AC5
C3/1DCE:	8527    	STA $27        ; Queue: Sustain menu
C3/1DD0:	A901    	LDA #$01       ; C3/1DE4
C3/1DD2:	8526    	STA $26        ; Next: Fade-in
C3/1DD4:	4C0936  	JMP $3609      ; BRT:1 + NMI

00: Queue fade-out, prepare transition
C3/1DD7:	20EA30  	JSR $30EA      ; Queue fade-out
C3/1DDA:	A00800  	LDY #$0008     ; Frames: 8
C3/1DDD:	8420    	STY $20        ; Set fade timer
C3/1DDF:	A902    	LDA #$02       ; C3/1DF1
C3/1DE1:	8526    	STA $26        ; Next: Wait
C3/1DE3:	60      	RTS

01: Queue fade-in, prepare transition
C3/1DE4:	20F130  	JSR $30F1      ; Queue fade-in
C3/1DE7:	A00800  	LDY #$0008     ; Frames: 8
C3/1DEA:	8420    	STY $20        ; Set fade timer
C3/1DEC:	A902    	LDA #$02       ; C3/1DF1
C3/1DEE:	8526    	STA $26        ; Next: Wait
C3/1DF0:	60      	RTS

02: Wait while menu fades in or out
C3/1DF1:	A420    	LDY $20        ; Timer expired?
C3/1DF3:	D004    	BNE $1DF9      ; Exit if not
C3/1DF5:	A527    	LDA $27        ; Queued command
C3/1DF7:	8526    	STA $26        ; Execute it next
C3/1DF9:	60      	RTS

03: Exit main menu's portrait area
C3/1DFA:	A900    	LDA #$00       ; Min slot: 0
C3/1DFC:	A0DD2F  	LDY #$2FDD     ; C3/2FDD
C3/1DFF:	20DE11  	JSR $11DE      ; Queue D-Pad fn
C3/1E02:	203308  	JSR $0833      ; Queue cursor OAM
C3/1E05:	A905    	LDA #$05       ; C3/1E0A
C3/1E07:	8526    	STA $26        ; Next: Main menu
C3/1E09:	60      	RTS

05: Sustain main menu
C3/1E0A:	201036  	JSR $3610      ; Redraw time
C3/1E0D:	A508    	LDA $08        ; No-autofire keys
C3/1E0F:	8980    	BIT #$80       ; Pushing A?
C3/1E11:	F003    	BEQ $1E16      ; Branch if not
C3/1E13:	4CFD2E  	JMP $2EFD      ; Handle selection

Fork: Handle left
C3/1E16:	A509    	LDA $09        ; No-autofire keys
C3/1E18:	8902    	BIT #$02       ; Pushing left?
C3/1E1A:	F006    	BEQ $1E22      ; Branch if not
C3/1E1C:	200E0F  	JSR $0F0E      ; Sound: Cursor
C3/1E1F:	4C612F  	JMP $2F61      ; Init Order menu

Fork: Handle B
C3/1E22:	A509    	LDA $09        ; No-autofire keys
C3/1E24:	8980    	BIT #$80       ; Pushing B?
C3/1E26:	F00F    	BEQ $1E37      ; Exit if not
C3/1E28:	9C0502  	STZ $0205      ; Clear field event
C3/1E2B:	20140F  	JSR $0F14      ; Sound: Cursor
C3/1E2E:	20381E  	JSR $1E38      ; Update field FX
C3/1E31:	A9FF    	LDA #$FF       ; Null value
C3/1E33:	8527    	STA $27        ; Queue menu exit
C3/1E35:	6426    	STZ $26        ; Next: Fade-out
C3/1E37:	60      	RTS

Update field effects from gear (Charms, Sprint Shoes)
C3/1E38:	9CDF11  	STZ $11DF      ; Clear effects
C3/1E3B:	A600    	LDX $00        ; Member slot: 1
C3/1E3D:	B569    	LDA $69,X      ; Actor in slot
C3/1E3F:	3006    	BMI $1E47      ; Skip if none
C3/1E41:	DA      	PHX            ; Save slot
C3/1E42:	220600C2	JSL $C20006    ; Load gear FX
C3/1E46:	FA      	PLX            ; Member slot
C3/1E47:	E8      	INX            ; Slot +1
C3/1E48:	E00400  	CPX #$0004     ; Done all 4?
C3/1E4B:	D0F0    	BNE $1E3D      ; Loop if not
C3/1E4D:	60      	RTS

06: Handle single actor targeting in main menu
C3/1E4E:	201036  	JSR $3610      ; Redraw time
C3/1E51:	A509    	LDA $09        ; No-autofire keys
C3/1E53:	8980    	BIT #$80       ; Pushing B?
C3/1E55:	F00C    	BEQ $1E63      ; Branch if not
C3/1E57:	20140F  	JSR $0F14      ; Sound: Cursor
C3/1E5A:	A905    	LDA #$05       ; Blinker: Off
C3/1E5C:	1446    	TRB $46        ; Actor cursor: Off
C3/1E5E:	A903    	LDA #$03       ; C3/1DFA
C3/1E60:	8526    	STA $26        ; Next: Main menu
C3/1E62:	60      	RTS

Fork: Handle MT mode switch
C3/1E63:	A509    	LDA $09        ; No-autofire keys
C3/1E65:	8902    	BIT #$02       ; Pushing left?
C3/1E67:	F01C    	BEQ $1E85      ; Branch if not
C3/1E69:	A525    	LDA $25        ; Selected menu
C3/1E6B:	C902    	CMP #$02       ; Equip?
C3/1E6D:	F004    	BEQ $1E73      ; Branch if so
C3/1E6F:	C903    	CMP #$03       ; Relic?
C3/1E71:	D012    	BNE $1E85      ; Branch if not
C3/1E73:	200E0F  	JSR $0F0E      ; Sound: Cursor
C3/1E76:	A906    	LDA #$06       ; Main cursor: Off
C3/1E78:	1446    	TRB $46        ; Set menu flag
C3/1E7A:	A937    	LDA #$37       ; C3/1F1B
C3/1E7C:	8526    	STA $26        ; Next: Target all
C3/1E7E:	A54E    	LDA $4E        ; Cursor row
C3/1E80:	855E    	STA $5E        ; Set return loc
C3/1E82:	4C2409  	JMP $0924      ; Create blinkers

Fork: Handle A
C3/1E85:	A508    	LDA $08        ; No-autofire keys
C3/1E87:	8980    	BIT #$80       ; Pushing A?
C3/1E89:	F007    	BEQ $1E92      ; Exit if not
C3/1E8B:	A54B    	LDA $4B        ; Cursor slot
C3/1E8D:	8528    	STA $28        ; Set member slot
C3/1E8F:	4C931E  	JMP $1E93      ; Skip a line
C3/1E92:	60      	RTS            ; Exit
C3/1E93:	20B41E  	JSR $1EB4      ; Can open menu?
C3/1E96:	B010    	BCS $1EA8      ; Fail if not
C3/1E98:	7B      	TDC            ; Clear A
C3/1E99:	A525    	LDA $25        ; Menu to open
C3/1E9B:	AA      	TAX            ; Index it
C3/1E9C:	BFAF1EC3	LDA $C31EAF,X  ; Init command
C3/1EA0:	8527    	STA $27        ; Put in queue
C3/1EA2:	6426    	STZ $26        ; Next: Fade-out
C3/1EA4:	201D0F  	JSR $0F1D      ; Sound: Click
C3/1EA7:	60      	RTS

Fork: Inaccessible menu
C3/1EA8:	202B0F  	JSR $0F2B      ; Play buzzer
C3/1EAB:	20F830  	JSR $30F8      ; Pixelate screen
C3/1EAE:	60      	RTS

Initialization commands for actor menus
C3/1EAF:	FF      	; Blank
C3/1EB0:	09      	; Skills
C3/1EB1:	35      	; Equip
C3/1EB2:	58      	; Relic
C3/1EB3:	0B      	; Status

Determine if actor-related menu is accessible
C3/1EB4:	7B      	TDC            ; Clear A
C3/1EB5:	A525    	LDA $25        ; Menu to open
C3/1EB7:	C901    	CMP #$01       ; Skills?
C3/1EB9:	F034    	BEQ $1EEF      ; Branch if so
C3/1EBB:	C902    	CMP #$02       ; Equip?
C3/1EBD:	F006    	BEQ $1EC5      ; Branch if so
C3/1EBF:	C903    	CMP #$03       ; Relic?
C3/1EC1:	F017    	BEQ $1EDA      ; Branch if so
C3/1EC3:	8054    	BRA $1F19      ; Allow access

Fork: Equip
C3/1EC5:	7B      	TDC            ; ...
C3/1EC6:	A528    	LDA $28        ; Member slot
C3/1EC8:	0A      	ASL A          ; Double it
C3/1EC9:	AA      	TAX            ; Index it
C3/1ECA:	C220    	REP #$20       ; 16-bit A
C3/1ECC:	B56D    	LDA $6D,X      ; Actor's address
C3/1ECE:	E220    	SEP #$20       ; 8-bit A
C3/1ED0:	AA      	TAX            ; Index it
C3/1ED1:	BD0000  	LDA $0000,X    ; Actor
C3/1ED4:	C90D    	CMP #$0D       ; Umaro or guest?
C3/1ED6:	B03F    	BCS $1F17      ; Fail if so
C3/1ED8:	8028    	BRA $1F02      ; Check if dead

Fork: Relic
C3/1EDA:	7B      	TDC            ; ...
C3/1EDB:	A528    	LDA $28        ; Member slot
C3/1EDD:	0A      	ASL A          ; Double it
C3/1EDE:	AA      	TAX            ; Index it
C3/1EDF:	C220    	REP #$20       ; 16-bit A
C3/1EE1:	B56D    	LDA $6D,X      ; Actor's address
C3/1EE3:	E220    	SEP #$20       ; 8-bit A
C3/1EE5:	AA      	TAX            ; Index it
C3/1EE6:	BD0000  	LDA $0000,X    ; Actor
C3/1EE9:	C90E    	CMP #$0E       ; Guest?
C3/1EEB:	B02A    	BCS $1F17      ; Fail if so
C3/1EED:	8013    	BRA $1F02      ; Check if dead

Fork: Skills
C3/1EEF:	20FD53  	JSR $53FD      ; Set skill colors
C3/1EF2:	A924    	LDA #$24       ; Palette: Gray
C3/1EF4:	A600    	LDX $00        ; 1st: Espers
C3/1EF6:	D579    	CMP $79,X      ; Grayed skill?
C3/1EF8:	D008    	BNE $1F02      ; Branch if not
C3/1EFA:	E8      	INX            ; Skill slot +1
C3/1EFB:	E00700  	CPX #$0007     ; Beyond Dance?
C3/1EFE:	D0F6    	BNE $1EF6      ; Loop if not
C3/1F00:	8015    	BRA $1F17      ; Play buzzer

Fork: Check if dead
C3/1F02:	7B      	TDC            ; Clear A
C3/1F03:	A528    	LDA $28        ; Member slot
C3/1F05:	0A      	ASL A          ; Double it
C3/1F06:	AA      	TAX            ; Index it
C3/1F07:	C220    	REP #$20       ; 16-bit A
C3/1F09:	B56D    	LDA $6D,X      ; Actor address
C3/1F0B:	E220    	SEP #$20       ; 8-bit A
C3/1F0D:	AA      	TAX            ; Index it
C3/1F0E:	BD1400  	LDA $0014,X    ; Zombie? KO?
C3/1F11:	29C2    	AND #$C2       ; Or Petrify?
C3/1F13:	D002    	BNE $1F17      ; Fail if any
C3/1F15:	8002    	BRA $1F19      ; Allow access

Fork: Set to play buzzer
C3/1F17:	38      	SEC            ; Mark failure
C3/1F18:	60      	RTS

Fork: Set to open menu
C3/1F19:	18      	CLC            ; Mark success
C3/1F1A:	60      	RTS

37: Handle multitargeting in main menu
C3/1F1B:	201036  	JSR $3610      ; Redraw time
C3/1F1E:	A509    	LDA $09        ; No-autofire keys
C3/1F20:	8980    	BIT #$80       ; Pushing B?
C3/1F22:	D006    	BNE $1F2A      ; Branch if so
C3/1F24:	A509    	LDA $09        ; ...
C3/1F26:	8901    	BIT #$01       ; Pushing right?
C3/1F28:	F021    	BEQ $1F4B      ; Branch if not
C3/1F2A:	20140F  	JSR $0F14      ; Sound: Cursor
C3/1F2D:	203330  	JSR $3033      ; Preload nav data
C3/1F30:	203308  	JSR $0833      ; Queue cursor OAM
C3/1F33:	A900    	LDA #$00       ; Min slot: 0
C3/1F35:	A05B30  	LDY #$305B     ; C3/305B
C3/1F38:	20DE11  	JSR $11DE      ; Queue D-Pad fn
C3/1F3B:	201B12  	JSR $121B      ; Run anim queue
C3/1F3E:	A55E    	LDA $5E        ; Old cursor row
C3/1F40:	854E    	STA $4E        ; Set as current
C3/1F42:	A906    	LDA #$06       ; C3/1E4E
C3/1F44:	8526    	STA $26        ; Next: ST actor
C3/1F46:	A908    	LDA #$08       ; Blinkers: Off
C3/1F48:	1446    	TRB $46        ; Set menu flag
C3/1F4A:	60      	RTS

Fork: Handle A
C3/1F4B:	A508    	LDA $08        ; No-autofire keys
C3/1F4D:	8980    	BIT #$80       ; Pushing A?
C3/1F4F:	F00A    	BEQ $1F5B      ; Exit if not
C3/1F51:	201D0F  	JSR $0F1D      ; Sound: Click
C3/1F54:	6426    	STZ $26        ; Next: Fade-out
C3/1F56:	A938    	LDA #$38       ; C3/1C98
C3/1F58:	8527    	STA $27        ; Queue: Party gear
C3/1F5A:	60      	RTS            ; ...
C3/1F5B:	60      	RTS            ; ...
C3/1F5C:	60      	RTS

08: Handle Item menu choice 1
C3/1F5D:	A910    	LDA #$10       ; Description: On
C3/1F5F:	1445    	TRB $45        ; Set menu flag
C3/1F61:	7B      	TDC            ; Clear A
C3/1F62:	852A    	STA $2A        ; List type: Stock
C3/1F64:	20680F  	JSR $0F68      ; Queue list upload
C3/1F67:	20CA1F  	JSR $1FCA      ; Handle L and R
C3/1F6A:	B0F0    	BCS $1F5C      ; Exit if pushed
C3/1F6C:	20A984  	JSR $84A9      ; Handle D-Pad
C3/1F6F:	20728A  	JSR $8A72      ; Load description

Fork: Handle B
C3/1F72:	A509    	LDA $09        ; No-autofire keys
C3/1F74:	8980    	BIT #$80       ; Pushing B?
C3/1F76:	F029    	BEQ $1FA1      ; Branch if not
C3/1F78:	20140F  	JSR $0F14      ; Sound: Cursor
C3/1F7B:	A44F    	LDY $4F        ; Cursor position
C3/1F7D:	8C2F02  	STY $022F      ; To cursor memory
C3/1F80:	A54A    	LDA $4A        ; Scroll position
C3/1F82:	8D3102  	STA $0231      ; To cursor memory
C3/1F85:	202F85  	JSR $852F      ; Load navig data
C3/1F88:	AD4E1D  	LDA $1D4E      ; Game options
C3/1F8B:	2940    	AND #$40       ; Cursor memory?
C3/1F8D:	F005    	BEQ $1F94      ; Branch if not
C3/1F8F:	AC3402  	LDY $0234      ; Former position
C3/1F92:	844D    	STY $4D        ; Set as current
C3/1F94:	203585  	JSR $8535      ; Relocate cursor
C3/1F97:	A917    	LDA #$17       ; C3/2667
C3/1F99:	8526    	STA $26        ; Next: Option list
C3/1F9B:	20068B  	JSR $8B06      ; Blank item count
C3/1F9E:	4CA40F  	JMP $0FA4      ; Queue its upload

Fork: Handle A
C3/1FA1:	A508    	LDA $08        ; No-autofire keys
C3/1FA3:	8980    	BIT #$80       ; Pushing A?
C3/1FA5:	F00E    	BEQ $1FB5      ; Exit if not
C3/1FA7:	201D0F  	JSR $0F1D      ; Sound: Click
C3/1FAA:	A54B    	LDA $4B        ; List slot
C3/1FAC:	8528    	STA $28        ; Set choice 1's
C3/1FAE:	A919    	LDA #$19       ; C3/27EC
C3/1FB0:	8526    	STA $26        ; Next: Choice 2
C3/1FB2:	4CBC2F  	JMP $2FBC      ; Create blinker
C3/1FB5:	60      	RTS

Hi-fork: Pressed L on first page
C3/1FB6:	6450    	STZ $50        ; List row: 1
C3/1FB8:	644E    	STZ $4E        ; Cursor row: 1
C3/1FBA:	38      	SEC            ; Mark L/R usage
C3/1FBB:	60      	RTS

Hi-fork: Pressed R on last page
C3/1FBC:	A554    	LDA $54        ; Bottom menu row
C3/1FBE:	3A      	DEC A          ; Adjust value
C3/1FBF:	854E    	STA $4E        ; Set cursor row
C3/1FC1:	18      	CLC            ; Prepare ADC
C3/1FC2:	654A    	ADC $4A        ; Add scroll pos
C3/1FC4:	8550    	STA $50        ; Set list row
C3/1FC6:	38      	SEC            ; Mark L/R usage
C3/1FC7:	60      	RTS

Hi-fork: Do nothing
C3/1FC8:	18      	CLC            ; Mark no L/R use
C3/1FC9:	60      	RTS

Handle L and R for scrollable list
C3/1FCA:	A520    	LDA $20        ; Scrolling now?
C3/1FCC:	D0FA    	BNE $1FC8      ; Exit if so
C3/1FCE:	A50A    	LDA $0A        ; Semi-auto keys
C3/1FD0:	8910    	BIT #$10       ; Pushing R?
C3/1FD2:	F025    	BEQ $1FF9      ; Branch if not
C3/1FD4:	A54A    	LDA $4A        ; Scroll position
C3/1FD6:	C55C    	CMP $5C        ; At very bottom?
C3/1FD8:	F0E2    	BEQ $1FBC      ; Branch if so
C3/1FDA:	A55C    	LDA $5C        ; Scroll limit
C3/1FDC:	38      	SEC            ; Prepare SBC
C3/1FDD:	E54A    	SBC $4A        ; Get rows left
C3/1FDF:	C55A    	CMP $5A        ; Full page below?
C3/1FE1:	B002    	BCS $1FE5      ; Branch if so
C3/1FE3:	8002    	BRA $1FE7      ; Skip a line
C3/1FE5:	A55A    	LDA $5A        ; Rows per page
C3/1FE7:	85E0    	STA $E0        ; Set shift qty
C3/1FE9:	A54A    	LDA $4A        ; Scroll position
C3/1FEB:	18      	CLC            ; Prepare ADC
C3/1FEC:	65E0    	ADC $E0        ; Add shift qty
C3/1FEE:	854A    	STA $4A        ; Save changes
C3/1FF0:	A550    	LDA $50        ; List row
C3/1FF2:	18      	CLC            ; Prepare ADC
C3/1FF3:	65E0    	ADC $E0        ; Add shift qty
C3/1FF5:	8550    	STA $50        ; Save changes
C3/1FF7:	8024    	BRA $201D      ; Redraw & Sound

Fork: Handle L
C3/1FF9:	A50A    	LDA $0A        ; Semi-auto keys
C3/1FFB:	8920    	BIT #$20       ; Pushing L?
C3/1FFD:	F0C9    	BEQ $1FC8      ; Exit if not
C3/1FFF:	A54A    	LDA $4A        ; On first page?
C3/2001:	F0B3    	BEQ $1FB6      ; Branch if so
C3/2003:	C55A    	CMP $5A        ; Full page above?
C3/2005:	B004    	BCS $200B      ; Branch if so
C3/2007:	A54A    	LDA $4A        ; Scroll position
C3/2009:	8002    	BRA $200D      ; Skip a line
C3/200B:	A55A    	LDA $5A        ; Rows per page
C3/200D:	85E0    	STA $E0        ; Set shift qty
C3/200F:	A54A    	LDA $4A        ; Scroll position
C3/2011:	38      	SEC            ; Prepare SBC
C3/2012:	E5E0    	SBC $E0        ; Sub shift qty
C3/2014:	854A    	STA $4A        ; Save changes
C3/2016:	A550    	LDA $50        ; List row
C3/2018:	38      	SEC            ; Prepare SBC
C3/2019:	E5E0    	SBC $E0        ; Sub shift qty
C3/201B:	8550    	STA $50        ; Save changes

Fork: Redraw list, play sound effect
C3/201D:	200E0F  	JSR $0F0E      ; Sound: Cursor
C3/2020:	7B      	TDC            ; Clear A
C3/2021:	A52A    	LDA $2A        ; List type
C3/2023:	0A      	ASL A          ; Double it
C3/2024:	AA      	TAX            ; Index it
C3/2025:	FC2A20  	JSR ($202A,X)  ; Redraw list
C3/2028:	38      	SEC            ; Mark L/R usage
C3/2029:	60      	RTS

Jump table for the above
C3/202A:	3620    	; Inventory
C3/202C:	3C20    	; Magic
C3/202E:	4220    	; Lore
C3/2030:	4820    	; Rage
C3/2032:	4E20    	; Esper
C3/2034:	5420    	; Gear

Redraw inventory for page swap (Item, Colosseum, Sell)
C3/2036:	204486  	JSR $8644      ; Load V-shift data
C3/2039:	4C3787  	JMP $8737      ; Draw inventory

Redraw Magic list for page swap
C3/203C:	20F354  	JSR $54F3      ; Load V-shift data
C3/203F:	4C5956  	JMP $5659      ; Draw spell list

Redraw Lore list for page swap
C3/2042:	20F354  	JSR $54F3      ; Load V-shift data
C3/2045:	4C0B59  	JMP $590B      ; Draw Lore list

Redraw Rage list for page swap
C3/2048:	20F354  	JSR $54F3      ; Load V-shift data
C3/204B:	4C025A  	JMP $5A02      ; Draw Rage list

Redraw Esper list for page swap
C3/204E:	20F354  	JSR $54F3      ; Load V-shift data
C3/2051:	4CC65A  	JMP $5AC6      ; Draw esper list

Redraw gear list for page swap (Equip, Relic)
C3/2054:	200F9D  	JSR $9D0F      ; Load V-shift data
C3/2057:	4C9BA4  	JMP $A49B      ; Draw item list

0A: Sustain Skills menu
C3/205A:	A910    	LDA #$10       ; Reset/Stop desc
C3/205C:	0445    	TSB $45        ; Set menu flag
C3/205E:	A9C0    	LDA #$C0       ; Scrollbar: Off
C3/2060:	1446    	TRB $46        ; Set anim index
C3/2062:	201952  	JSR $5219      ; Handle D-Pad
C3/2065:	A509    	LDA $09        ; No-autofire keys
C3/2067:	8980    	BIT #$80       ; Pushing B?
C3/2069:	F00A    	BEQ $2075      ; Branch if not
C3/206B:	20140F  	JSR $0F14      ; Sound: Cursor
C3/206E:	A904    	LDA #$04       ; C3/1AF0
C3/2070:	8527    	STA $27        ; Queue main menu
C3/2072:	6426    	STZ $26        ; Next: Fade-out
C3/2074:	60      	RTS

Fork: Handle A
C3/2075:	A508    	LDA $08        ; No-autofire keys
C3/2077:	8980    	BIT #$80       ; Pushing A?
C3/2079:	F007    	BEQ $2082      ; Branch if not
C3/207B:	A54E    	LDA $4E        ; Cursor row
C3/207D:	855E    	STA $5E        ; Set return loc
C3/207F:	4CEA20  	JMP $20EA      ; Invoke submenu

Fork: Handle L and R, prepare for menu reset
C3/2082:	A909    	LDA #$09       ; C3/1BC1
C3/2084:	85E0    	STA $E0        ; Set init command
C3/2086:	8000    	BRA $2088      ; ...

Handle member switching with L or R (excludes Status menu)
C3/2088:	A508    	LDA $08        ; No-autofire keys
C3/208A:	8910    	BIT #$10       ; Pushing R?
C3/208C:	F02B    	BEQ $20B9      ; Branch if not
C3/208E:	A525    	LDA $25        ; Submenu
C3/2090:	C903    	CMP #$03       ; Relic?
C3/2092:	D00B    	BNE $209F      ; Branch if not
C3/2094:	20F9A6  	JSR $A6F9      ; Handle Reequip
C3/2097:	A599    	LDA $99        ; Triggered it?
C3/2099:	F004    	BEQ $209F      ; Branch if not
C3/209B:	200E0F  	JSR $0F0E      ; Sound: Cursor
C3/209E:	60      	RTS

Fork: Switch to next member
C3/209F:	7B      	TDC            ; Clear A
C3/20A0:	A528    	LDA $28        ; Current member
C3/20A2:	1A      	INC A          ; Point to next
C3/20A3:	2903    	AND #$03       ; Wrap if last
C3/20A5:	8528    	STA $28        ; Save changes
C3/20A7:	AA      	TAX            ; Index it
C3/20A8:	B569    	LDA $69,X      ; Nobody there?
C3/20AA:	30F3    	BMI $209F      ; Skip if so
C3/20AC:	20B41E  	JSR $1EB4      ; Can access menu?
C3/20AF:	B0EE    	BCS $209F      ; Skip if not
C3/20B1:	A5E0    	LDA $E0        ; Init command
C3/20B3:	8526    	STA $26        ; Set menu mode
C3/20B5:	200E0F  	JSR $0F0E      ; Sound: Cursor
C3/20B8:	60      	RTS

Fork: Handle L
C3/20B9:	A508    	LDA $08        ; No-autofire keys
C3/20BB:	8920    	BIT #$20       ; Pushing L?
C3/20BD:	F02A    	BEQ $20E9      ; Exit if not
C3/20BF:	A525    	LDA $25        ; Submenu
C3/20C1:	C903    	CMP #$03       ; Relic?
C3/20C3:	D00B    	BNE $20D0      ; Branch if not
C3/20C5:	20F9A6  	JSR $A6F9      ; Handle Reequip
C3/20C8:	A599    	LDA $99        ; Triggered it?
C3/20CA:	F004    	BEQ $20D0      ; Branch if not
C3/20CC:	200E0F  	JSR $0F0E      ; Sound: Cursor
C3/20CF:	60      	RTS

Fork: Switch to preceding member
C3/20D0:	7B      	TDC            ; Clear A
C3/20D1:	A528    	LDA $28        ; Current member
C3/20D3:	3A      	DEC A          ; Point to previous
C3/20D4:	2903    	AND #$03       ; Wrap if was first
C3/20D6:	8528    	STA $28        ; Save changes
C3/20D8:	AA      	TAX            ; Index it
C3/20D9:	B569    	LDA $69,X      ; Nobody there?
C3/20DB:	30F3    	BMI $20D0      ; Skip if so
C3/20DD:	20B41E  	JSR $1EB4      ; Can access menu?
C3/20E0:	B0EE    	BCS $20D0      ; Skip if not
C3/20E2:	A5E0    	LDA $E0        ; Init command
C3/20E4:	8526    	STA $26        ; Set menu mode
C3/20E6:	200E0F  	JSR $0F0E      ; Sound: Cursor
C3/20E9:	60      	RTS

Initialize selected Skills submenu if accessible
C3/20EA:	7B      	TDC            ; Clear A
C3/20EB:	A54B    	LDA $4B        ; Chosen menu
C3/20ED:	AA      	TAX            ; Index it
C3/20EE:	B579    	LDA $79,X      ; Name's color
C3/20F0:	C920    	CMP #$20       ; User's color?
C3/20F2:	D00A    	BNE $20FE      ; Fail if not
C3/20F4:	201D0F  	JSR $0F1D      ; Sound: Click
C3/20F7:	A54B    	LDA $4B        ; Chosen menu
C3/20F9:	0A      	ASL A          ; Double it
C3/20FA:	AA      	TAX            ; Index it
C3/20FB:	7C0521  	JMP ($2105,X)  ; Invoke menu

Fork: Play buzzer
C3/20FE:	202B0F  	JSR $0F2B      ; Play buzzer
C3/2101:	20F830  	JSR $30F8      ; Pixelate screen
C3/2104:	60      	RTS

Jump table for the above
C3/2105:	1321    	; Espers
C3/2107:	7C21    	; Magic
C3/2109:	4E21    	; SwdTech
C3/210B:	6521    	; Blitz
C3/210D:	CE21    	; Lore
C3/210F:	0622    	; Rage
C3/2111:	3E22    	; Dance

Initialize Espers menu
C3/2113:	644A    	STZ $4A        ; List scroll: 0
C3/2115:	20A409  	JSR $09A4      ; Create scrollbar
C3/2118:	C220    	REP #$20       ; 16-bit A
C3/211A:	A93313  	LDA #$1333     ; V-Speed: 19.2 px
C3/211D:	9F4A357E	STA $7E354A,X  ; Set scrollbar's
C3/2121:	A96000  	LDA #$0060     ; Y: 96
C3/2124:	9FCA347E	STA $7E34CA,X  ; Set scrollbar's
C3/2128:	E220    	SEP #$20       ; 8-bit A
C3/212A:	20CD52  	JSR $52CD      ; Load navig data
C3/212D:	20D652  	JSR $52D6      ; Relocate cursor
C3/2130:	A905    	LDA #$05       ; Top row: Carb.'s
C3/2132:	855C    	STA $5C        ; Set scroll limit
C3/2134:	A909    	LDA #$09       ; Onscreen rows: 9
C3/2136:	855A    	STA $5A        ; Set rows per page
C3/2138:	A902    	LDA #$02       ; Onscreen cols: 2
C3/213A:	855B    	STA $5B        ; Set cols per page
C3/213C:	A00001  	LDY #$0100     ; X: 256
C3/213F:	8439    	STY $39        ; Set BG2 X-Pos
C3/2141:	843D    	STY $3D        ; Set BG3 X-Pos
C3/2143:	20AC5A  	JSR $5AAC      ; Draw espers, etc.
C3/2146:	A91E    	LDA #$1E       ; C3/2946
C3/2148:	8526    	STA $26        ; Next: Sustain menu
C3/214A:	20862F  	JSR $2F86      ; Create blinker
C3/214D:	60      	RTS

Initialize SwdTech menu
C3/214E:	644A    	STZ $4A        ; List scroll: 0
C3/2150:	20A752  	JSR $52A7      ; Load navig data
C3/2153:	20B052  	JSR $52B0      ; Relocate cursor
C3/2156:	A00001  	LDY #$0100     ; X: 256
C3/2159:	8439    	STY $39        ; Set BG2 X-Pos
C3/215B:	843D    	STY $3D        ; Set BG3 X-Pos
C3/215D:	20B059  	JSR $59B0      ; Draw techs, etc.
C3/2160:	A93E    	LDA #$3E       ; C3/29F8
C3/2162:	8526    	STA $26        ; Next: Sustain menu
C3/2164:	60      	RTS

Initialize Blitz menu
C3/2165:	644A    	STZ $4A        ; List scroll: 0
C3/2167:	20A752  	JSR $52A7      ; Load navig data
C3/216A:	20B052  	JSR $52B0      ; Relocate cursor
C3/216D:	A00001  	LDY #$0100     ; X: 256
C3/2170:	8439    	STY $39        ; Set BG2 X-Pos
C3/2172:	843D    	STY $3D        ; Set BG3 X-Pos
C3/2174:	202D5C  	JSR $5C2D      ; Draw inputs, etc.
C3/2177:	A933    	LDA #$33       ; C3/29E1
C3/2179:	8526    	STA $26        ; Next: Sustain menu
C3/217B:	60      	RTS

Initialize Magic menu
C3/217C:	209021  	JSR $2190      ; Create scrollbar
C3/217F:	20A821  	JSR $21A8      ; Load nav data, etc.
C3/2182:	20B821  	JSR $21B8      ; Draw spells, etc.
C3/2185:	209558  	JSR $5895      ; Draw MP cost
C3/2188:	20B80F  	JSR $0FB8      ; Queue BG3 upload
C3/218B:	A91A    	LDA #$1A       ; C3/2855
C3/218D:	8526    	STA $26        ; Next: Sustain menu
C3/218F:	60      	RTS

Create scrollbar for Magic menu
C3/2190:	644A    	STZ $4A        ; List scroll: 0
C3/2192:	20A409  	JSR $09A4      ; Queue OAM fn
C3/2195:	C220    	REP #$20       ; 16-bit A
C3/2197:	A9BA08  	LDA #$08BA     ; V-Speed: 8.73 px
C3/219A:	9F4A357E	STA $7E354A,X  ; Set sprite's
C3/219E:	A96000  	LDA #$0060     ; Y: 96
C3/21A1:	9FCA347E	STA $7E34CA,X  ; Set sprite's
C3/21A5:	E220    	SEP #$20       ; 8-bit A
C3/21A7:	60      	RTS

Load navigation data for Magic menu; position cursor
C3/21A8:	204552  	JSR $5245      ; Load navig data
C3/21AB:	AD4E1D  	LDA $1D4E      ; Game options
C3/21AE:	2940    	AND #$40       ; Cursor memory?
C3/21B0:	F003    	BEQ $21B5      ; Branch if not
C3/21B2:	20750E  	JSR $0E75      ; Restore cursor
C3/21B5:	4C4E52  	JMP $524E      ; Relocate cursor

Switch to Magic menu, create portrait, draw spells and "MP"
C3/21B8:	A90B    	LDA #$0B       ; Top row: Quake's
C3/21BA:	855C    	STA $5C        ; Set scroll limit
C3/21BC:	A909    	LDA #$09       ; Onscreen rows: 9
C3/21BE:	855A    	STA $5A        ; Set rows per page
C3/21C0:	A903    	LDA #$03       ; Onscreen cols: 3
C3/21C2:	855B    	STA $5B        ; Set cols per page
C3/21C4:	A00001  	LDY #$0100     ; X: 256
C3/21C7:	8439    	STY $39        ; Set BG2 X-Pos
C3/21C9:	843D    	STY $3D        ; Set BG3 X-Pos
C3/21CB:	4C3F54  	JMP $543F      ; Draw spells, etc.

Initialize Lore menu
C3/21CE:	644A    	STZ $4A        ; List scroll: 0
C3/21D0:	20A409  	JSR $09A4      ; Create scrollbar
C3/21D3:	C220    	REP #$20       ; 16-bit A
C3/21D5:	A90020  	LDA #$2000     ; V-Speed: 32 px
C3/21D8:	9F4A357E	STA $7E354A,X  ; Set scrollbar's
C3/21DC:	A96000  	LDA #$0060     ; Y: 96
C3/21DF:	9FCA347E	STA $7E34CA,X  ; Set scrollbar's
C3/21E3:	E220    	SEP #$20       ; 8-bit A
C3/21E5:	20CD52  	JSR $52CD      ; Load navig data
C3/21E8:	20D652  	JSR $52D6      ; Relocate cursor
C3/21EB:	A903    	LDA #$03       ; Top row: Big Guard
C3/21ED:	855C    	STA $5C        ; Set scroll limit
C3/21EF:	A909    	LDA #$09       ; Onscreen rows: 9
C3/21F1:	855A    	STA $5A        ; Set rows per page
C3/21F3:	A902    	LDA #$02       ; Onscreen cols: 2
C3/21F5:	855B    	STA $5B        ; Set cols per page
C3/21F7:	A00001  	LDY #$0100     ; X: 256
C3/21FA:	8439    	STY $39        ; Set BG2 X-Pos
C3/21FC:	843D    	STY $3D        ; Set BG3 X-Pos
C3/21FE:	20C858  	JSR $58C8      ; Draw lores, etc.
C3/2201:	A91B    	LDA #$1B       ; C3/28FD
C3/2203:	8526    	STA $26        ; Next: Sustain menu
C3/2205:	60      	RTS

Initialize Rage menu
C3/2206:	644A    	STZ $4A        ; List scroll: 0
C3/2208:	20A409  	JSR $09A4      ; Create scrollbar
C3/220B:	C220    	REP #$20       ; 16-bit A
C3/220D:	A9CE00  	LDA #$00CE     ; V-Speed: 0.8 px
C3/2210:	9F4A357E	STA $7E354A,X  ; Set scrollbar's
C3/2214:	A96000  	LDA #$0060     ; Y: 96
C3/2217:	9FCA347E	STA $7E34CA,X  ; Set scrollbar's
C3/221B:	E220    	SEP #$20       ; 8-bit A
C3/221D:	200553  	JSR $5305      ; Load navig data
C3/2220:	200E53  	JSR $530E      ; Relocate cursor
C3/2223:	A977    	LDA #$77       ; Top row: Mandrake
C3/2225:	855C    	STA $5C        ; Set scroll limit
C3/2227:	A909    	LDA #$09       ; Onscreen rows: 9
C3/2229:	855A    	STA $5A        ; Set rows per page
C3/222B:	A902    	LDA #$02       ; Onscreen cols: 2
C3/222D:	855B    	STA $5B        ; Set cols per page
C3/222F:	A00001  	LDY #$0100     ; X: 256
C3/2232:	8439    	STY $39        ; Set BG2 X-Pos
C3/2234:	843D    	STY $3D        ; Set BG3 X-Pos
C3/2236:	20EC59  	JSR $59EC      ; Draw rages, etc.
C3/2239:	A91D    	LDA #$1D       ; C3/292D
C3/223B:	8526    	STA $26        ; Next: Sustain menu
C3/223D:	60      	RTS

Initialize Dance menu
C3/223E:	644A    	STZ $4A        ; List scroll: 0
C3/2240:	20A752  	JSR $52A7      ; Load navig data
C3/2243:	20B052  	JSR $52B0      ; Relocate cursor
C3/2246:	A00001  	LDY #$0100     ; X: 256
C3/2249:	8439    	STY $39        ; Set BG2 X-Pos
C3/224B:	843D    	STY $3D        ; Set BG3 X-Pos
C3/224D:	20D15D  	JSR $5DD1      ; Draw dances, etc.
C3/2250:	A91C    	LDA #$1C       ; C3/291D
C3/2252:	8526    	STA $26        ; Next: Sustain menu
C3/2254:	60      	RTS

0C: Sustain Status menu
C3/2255:	20A40F  	JSR $0FA4      ; Set to redraw cmds
C3/2258:	A508    	LDA $08        ; No-autofire keys
C3/225A:	8910    	BIT #$10       ; Pushing R?
C3/225C:	F020    	BEQ $227E      ; Branch if not
C3/225E:	A528    	LDA $28        ; Member slot
C3/2260:	8579    	STA $79        ; Set former slot
C3/2262:	7B      	TDC            ; Clear A
C3/2263:	A528    	LDA $28        ; Member slot
C3/2265:	1A      	INC A          ; Point to next
C3/2266:	2903    	AND #$03       ; Wrap if was last
C3/2268:	8528    	STA $28        ; Save changes
C3/226A:	AA      	TAX            ; Index slot
C3/226B:	B569    	LDA $69,X      ; Nobody there?
C3/226D:	30F3    	BMI $2262      ; Skip slot if so
C3/226F:	A528    	LDA $28        ; New member slot
C3/2271:	C579    	CMP $79        ; Matches former?
C3/2273:	F003    	BEQ $2278      ; Skip sound if so
C3/2275:	200E0F  	JSR $0F0E      ; Sound: Cursor
C3/2278:	20C31C  	JSR $1CC3      ; Init cursor data
C3/227B:	4CE063  	JMP $63E0      ; Swap actor info

Fork: Handle L
C3/227E:	A508    	LDA $08        ; No-autofire keys
C3/2280:	8920    	BIT #$20       ; Pushing L?
C3/2282:	F020    	BEQ $22A4      ; Branch if not
C3/2284:	A528    	LDA $28        ; Member slot
C3/2286:	8579    	STA $79        ; Set former slot
C3/2288:	7B      	TDC            ; Clear A
C3/2289:	A528    	LDA $28        ; Member slot
C3/228B:	3A      	DEC A          ; Point to previous
C3/228C:	2903    	AND #$03       ; Wrap if was first
C3/228E:	8528    	STA $28        ; Save changes
C3/2290:	AA      	TAX            ; Index it
C3/2291:	B569    	LDA $69,X      ; Empty slot?
C3/2293:	30F3    	BMI $2288      ; Loop if so
C3/2295:	A528    	LDA $28        ; New member slot
C3/2297:	C579    	CMP $79        ; Matches former?
C3/2299:	F003    	BEQ $229E      ; Skip sound if so
C3/229B:	200E0F  	JSR $0F0E      ; Sound: Cursor
C3/229E:	20C31C  	JSR $1CC3      ; Init cursor data
C3/22A1:	4CE063  	JMP $63E0      ; Swap actor info

Fork: Handle B
C3/22A4:	A509    	LDA $09        ; No-autofire keys
C3/22A6:	8980    	BIT #$80       ; Pushing B?
C3/22A8:	F00A    	BEQ $22B4      ; Branch if not
C3/22AA:	20140F  	JSR $0F14      ; Sound: Cursor
C3/22AD:	A904    	LDA #$04       ; C3/1AF0
C3/22AF:	8527    	STA $27        ; Queue main menu
C3/22B1:	6426    	STZ $26        ; Next: Fade-out
C3/22B3:	60      	RTS

Fork: Handle Gogo
C3/22B4:	7B      	TDC            ; Clear A
C3/22B5:	A528    	LDA $28        ; Member slot
C3/22B7:	0A      	ASL A          ; Double it
C3/22B8:	AA      	TAX            ; Index it
C3/22B9:	B46D    	LDY $6D,X      ; Actor's address
C3/22BB:	B90000  	LDA $0000,Y    ; Actor
C3/22BE:	C90C    	CMP #$0C       ; Gogo?
C3/22C0:	D051    	BNE $2313      ; Exit if not
C3/22C2:	20CD37  	JSR $37CD      ; Handle D-Pad
C3/22C5:	A508    	LDA $08        ; No-autofire keys
C3/22C7:	8980    	BIT #$80       ; Pushing A?
C3/22C9:	F048    	BEQ $2313      ; Exit if not
C3/22CB:	201D0F  	JSR $0F1D      ; Sound: Click
C3/22CE:	A54B    	LDA $4B        ; Cursor slot
C3/22D0:	85E7    	STA $E7        ; Memorize it
C3/22D2:	64E8    	STZ $E8        ; Clear HB
C3/22D4:	7B      	TDC            ; Clear A
C3/22D5:	A528    	LDA $28        ; Member slot
C3/22D7:	0A      	ASL A          ; Double it
C3/22D8:	AA      	TAX            ; Index it
C3/22D9:	B46D    	LDY $6D,X      ; Actor's address
C3/22DB:	C220    	REP #$20       ; 16-bit A
C3/22DD:	98      	TYA            ; Move it to A
C3/22DE:	18      	CLC            ; Prepare ADC
C3/22DF:	65E7    	ADC $E7        ; Add cursor slot
C3/22E1:	A8      	TAY            ; Index sum
C3/22E2:	E220    	SEP #$20       ; 8-bit A
C3/22E4:	B91600  	LDA $0016,Y    ; Chosen command
C3/22E7:	C912    	CMP #$12       ; Mimic?
C3/22E9:	F028    	BEQ $2313      ; Exit if so
C3/22EB:	20A12F  	JSR $2FA1      ; Create blinker
C3/22EE:	A54E    	LDA $4E        ; Cursor row
C3/22F0:	855E    	STA $5E        ; Set return loc
C3/22F2:	A54B    	LDA $4B        ; Cursor slot
C3/22F4:	8564    	STA $64        ; Set altered slot
C3/22F6:	A906    	LDA #$06       ; Frames: 6
C3/22F8:	8520    	STA $20        ; Set scroll timer
C3/22FA:	A00C00  	LDY #$000C     ; Speed: 12
C3/22FD:	849C    	STY $9C        ; Set scroll speed
C3/22FF:	A96A    	LDA #$6A       ; C3/69F0
C3/2301:	8527    	STA $27        ; Queue: Shifted menu
C3/2303:	A965    	LDA #$65       ; C3/37AF
C3/2305:	8526    	STA $26        ; Next: Shift screen
C3/2307:	204C6A  	JSR $6A4C      ; Load navig data
C3/230A:	AF899D7E	LDA $7E9D89    ; Command list size
C3/230E:	8554    	STA $54        ; Set number of rows
C3/2310:	4C556A  	JMP $6A55      ; Relocate cursor
C3/2313:	60      	RTS

Menu command 6B (unused)
C3/2314:	A509    	LDA $09        ; No-autofire keys
C3/2316:	8980    	BIT #$80       ; Pushing B?
C3/2318:	F00A    	BEQ $2324      ; Exit if not
C3/231A:	20140F  	JSR $0F14      ; Sound: Cursor
C3/231D:	A904    	LDA #$04       ; C3/1AF0
C3/231F:	8527    	STA $27        ; Queue main menu
C3/2321:	6426    	STZ $26        ; Next: Fade-out
C3/2323:	60      	RTS            ; ...
C3/2324:	60      	RTS

0E: Sustain Config menu
C3/2325:	20540F  	JSR $0F54      ; Queue list upload
C3/2328:	A50B    	LDA $0B        ; Semi-auto keys
C3/232A:	8904    	BIT #$04       ; Pushing down?
C3/232C:	F012    	BEQ $2340      ; Branch if not
C3/232E:	A54E    	LDA $4E        ; Cursor row
C3/2330:	C909    	CMP #$09       ; On Controller?
C3/2332:	D00C    	BNE $2340      ; Branch if not
C3/2334:	A950    	LDA #$50       ; C3/3AD4
C3/2336:	8526    	STA $26        ; Next: Scroll
C3/2338:	A911    	LDA #$11       ; Frames: 17
C3/233A:	8520    	STA $20        ; Set scroll timer
C3/233C:	200E0F  	JSR $0F0E      ; Sound: Cursor
C3/233F:	60      	RTS

Fork: Handle upward scrolling
C3/2340:	A50B    	LDA $0B        ; Semi-auto keys
C3/2342:	8908    	BIT #$08       ; Pushing up?
C3/2344:	F014    	BEQ $235A      ; Branch if not
C3/2346:	A54E    	LDA $4E        ; On top row?
C3/2348:	D010    	BNE $235A      ; Branch if not
C3/234A:	A54A    	LDA $4A        ; On first page?
C3/234C:	F00C    	BEQ $235A      ; Branch if so
C3/234E:	A951    	LDA #$51       ; C3/3AF5
C3/2350:	8526    	STA $26        ; Next: Scroll
C3/2352:	A911    	LDA #$11       ; Frames: 17
C3/2354:	8520    	STA $20        ; Set scroll timer
C3/2356:	200E0F  	JSR $0F0E      ; Sound: Cursor
C3/2359:	60      	RTS

Fork: Handle B and D-Pad
C3/235A:	A54A    	LDA $4A        ; On first page?
C3/235C:	F005    	BEQ $2363      ; Branch if so
C3/235E:	205539  	JSR $3955      ; Handle P2 D-Pad
C3/2361:	8003    	BRA $2366      ; Skip a line
C3/2363:	202D39  	JSR $392D      ; Handle P1 D-Pad
C3/2366:	A509    	LDA $09        ; No-autofire keys
C3/2368:	8980    	BIT #$80       ; Pushing B?
C3/236A:	F00A    	BEQ $2376      ; Branch if not
C3/236C:	20140F  	JSR $0F14      ; Sound: Cursor
C3/236F:	A904    	LDA #$04       ; C3/1AF0
C3/2371:	8527    	STA $27        ; Queue main menu
C3/2373:	6426    	STZ $26        ; Next: Fade-out
C3/2375:	60      	RTS

Fork: Handle left and right
C3/2376:	A50B    	LDA $0B        ; Semi-auto keys
C3/2378:	8901    	BIT #$01       ; Pushing right?
C3/237A:	D006    	BNE $2382      ; Branch if so
C3/237C:	A50B    	LDA $0B        ; ...
C3/237E:	8902    	BIT #$02       ; Pushing left?
C3/2380:	F003    	BEQ $2385      ; Branch if not
C3/2382:	4C343E  	JMP $3E34      ; Change settings

Fork: Handle A
C3/2385:	A508    	LDA $08        ; No-autofire keys
C3/2387:	8980    	BIT #$80       ; Pushing A?
C3/2389:	F003    	BEQ $238E      ; Branch if not
C3/238B:	4C9123  	JMP $2391      ; Handle click

Fork: Handle L and R
C3/238E:	4C5F24  	JMP $245F      ; Handle L and R

Fork: Handle clicked option
C3/2391:	A54E    	LDA $4E        ; Cursor row
C3/2393:	855F    	STA $5F        ; Set return row
C3/2395:	A54A    	LDA $4A        ; On first page?
C3/2397:	D009    	BNE $23A2      ; Branch if not
C3/2399:	7B      	TDC            ; Clear A
C3/239A:	A54B    	LDA $4B        ; Cursor slot
C3/239C:	0A      	ASL A          ; Double it
C3/239D:	AA      	TAX            ; Index it
C3/239E:	7CAA23  	JMP ($23AA,X)  ; Handle option

Waste of space...
C3/23A1:	60      	RTS

Fork: Handle click on page 2
C3/23A2:	7B      	TDC            ; Clear A
C3/23A3:	A54B    	LDA $4B        ; Cursor slot
C3/23A5:	0A      	ASL A          ; Double it
C3/23A6:	AA      	TAX            ; Index it
C3/23A7:	7CBE23  	JMP ($23BE,X)  ; Handle option

Jump table for clicks in Config menu
C3/23AA:	A123    	; Bat.Mode   (NOP)
C3/23AC:	A123    	; Bat.Speed  (NOP)
C3/23AE:	A123    	; Msg.Speed  (NOP)
C3/23B0:	CA23    	; Cmd.Set
C3/23B2:	A123    	; Gauge      (NOP)
C3/23B4:	A123    	; Sound      (NOP)
C3/23B6:	A123    	; Cursor     (NOP)
C3/23B8:	A123    	; Reequip    (NOP)
C3/23BA:	DB23    	; Buttton
C3/23BC:	EC23    	; Controller
C3/23BE:	A123    	; Mag.Order  (NOP)
C3/23C0:	A123    	; Window     (NOP)
C3/23C2:	FB23    	; Color
C3/23C4:	FB23    	; R
C3/23C6:	FB23    	; G
C3/23C8:	FB23    	; B

Handle click on "Short" option
C3/23CA:	AD4D1D  	LDA $1D4D      ; Game options
C3/23CD:	8980    	BIT #$80       ; Short cmd set?
C3/23CF:	F0D0    	BEQ $23A1      ; Exit if not
C3/23D1:	201D0F  	JSR $0F1D      ; Sound: Click
C3/23D4:	A947    	LDA #$47       ; C3/43A3
C3/23D6:	8527    	STA $27        ; Queue cmd menu
C3/23D8:	6426    	STZ $26        ; Next: Fade-out
C3/23DA:	60      	RTS

Handle click on "Custom" option
C3/23DB:	AD541D  	LDA $1D54      ; Game options
C3/23DE:	8940    	BIT #$40       ; Custom buttons?
C3/23E0:	F0BF    	BEQ $23A1      ; Exit if not
C3/23E2:	201D0F  	JSR $0F1D      ; Sound: Click
C3/23E5:	A949    	LDA #$49       ; C3/478E
C3/23E7:	8527    	STA $27        ; Queue key menu
C3/23E9:	6426    	STZ $26        ; Next: Fade-out
C3/23EB:	60      	RTS

Handle click on "Multiple" option
C3/23EC:	AD541D  	LDA $1D54      ; Multiplayer mode?
C3/23EF:	10B0    	BPL $23A1      ; Exit if not
C3/23F1:	201D0F  	JSR $0F1D      ; Sound: Click
C3/23F4:	A94B    	LDA #$4B       ; C3/47E2
C3/23F6:	8527    	STA $27        ; Queue joypad menu
C3/23F8:	6426    	STZ $26        ; Next: Fade-out
C3/23FA:	60      	RTS

Handle color resetting in options
C3/23FB:	201D0F  	JSR $0F1D      ; Sound: Click
C3/23FE:	AD541D  	LDA $1D54      ; Game options
C3/2401:	2938    	AND #$38       ; Get viewed color
C3/2403:	F009    	BEQ $240E      ; Branch if font
C3/2405:	201A24  	JSR $241A      ; Reset skin colors
C3/2408:	205B3B  	JSR $3B5B      ; Refresh skin
C3/240B:	4CA442  	JMP $42A4      ; Redraw RGB info

Fork: Reset font color
C3/240E:	A0FF7F  	LDY #$7FFF     ; Color: White
C3/2411:	8C551D  	STY $1D55      ; Put in options
C3/2414:	20B940  	JSR $40B9      ; Put in palettes
C3/2417:	4CA442  	JMP $42A4      ; Redraw RGB info

Reset skin palette
C3/241A:	7B      	TDC            ; Clear A
C3/241B:	AD4E1D  	LDA $1D4E      ; Game options
C3/241E:	290F    	AND #$0F       ; Get wallpaper
C3/2420:	C220    	REP #$20       ; 16-bit A
C3/2422:	A8      	TAY            ; Set loop counter
C3/2423:	64EB    	STZ $EB        ; RAM index: 0
C3/2425:	64ED    	STZ $ED        ; ROM index: 0
C3/2427:	88      	DEY            ; Counter -1
C3/2428:	3012    	BMI $243C      ; Branch if < 0
C3/242A:	A90E00  	LDA #$000E     ; RAM struct size
C3/242D:	18      	CLC            ; Prepare ADC
C3/242E:	65EB    	ADC $EB        ; Add RAM index
C3/2430:	85EB    	STA $EB        ; Set RAM index
C3/2432:	A92000  	LDA #$0020     ; ROM struct size
C3/2435:	18      	CLC            ; Prepare ADC
C3/2436:	65ED    	ADC $ED        ; Add ROM index
C3/2438:	85ED    	STA $ED        ; Set ROM index
C3/243A:	80EB    	BRA $2427      ; Loop

Fork: Load skin palette
C3/243C:	A22B31  	LDX #$312B     ; 7E/312B
C3/243F:	8E8121  	STX $2181      ; Set WRAM LBs
C3/2442:	A5EB    	LDA $EB        ; RAM index
C3/2444:	A8      	TAY            ; Index it
C3/2445:	A5ED    	LDA $ED        ; ROM index
C3/2447:	AA      	TAX            ; Index it
C3/2448:	E220    	SEP #$20       ; 8-bit A
C3/244A:	A90E    	LDA #$0E       ; Colors: 7
C3/244C:	85E9    	STA $E9        ; Set counter
C3/244E:	BF021CED	LDA $ED1C02,X  ; Color data
C3/2452:	99571D  	STA $1D57,Y    ; Put in options
C3/2455:	8D8021  	STA $2180      ; Put in palette
C3/2458:	E8      	INX            ; ROM index +1
C3/2459:	C8      	INY            ; RAM index +1
C3/245A:	C6E9    	DEC $E9        ; One less byte
C3/245C:	D0F0    	BNE $244E      ; Loop till last
C3/245E:	60      	RTS

Handle L and R in Config menu
C3/245F:	A508    	LDA $08        ; No-autofire keys
C3/2461:	8910    	BIT #$10       ; Pushing R?
C3/2463:	D004    	BNE $2469      ; Branch if so
C3/2465:	8920    	BIT #$20       ; Pushing L?
C3/2467:	F015    	BEQ $247E      ; Exit if not
C3/2469:	200E0F  	JSR $0F0E      ; Sound: Cursor
C3/246C:	645F    	STZ $5F        ; Return loc...
C3/246E:	A54A    	LDA $4A        ; On first page?
C3/2470:	D007    	BNE $2479      ; Branch if not
C3/2472:	A901    	LDA #$01       ; Screen: 2nd
C3/2474:	854A    	STA $4A        ; Set active page
C3/2476:	4CBE3A  	JMP $3ABE      ; Switch screens

Fork: On page 2
C3/2479:	644A    	STZ $4A        ; Page: 1st
C3/247B:	20C93A  	JSR $3AC9      ; Switch screens
C3/247E:	60      	RTS

0F: Handle Order menu choice 1
C3/247F:	201036  	JSR $3610      ; Redraw time
C3/2482:	20FB70  	JSR $70FB      ; Set SRAM party
C3/2485:	A509    	LDA $09        ; No-autofire keys
C3/2487:	8980    	BIT #$80       ; Pushing B?
C3/2489:	D006    	BNE $2491      ; Branch if so
C3/248B:	A509    	LDA $09        ; ...
C3/248D:	8901    	BIT #$01       ; Pushing right?
C3/248F:	F019    	BEQ $24AA      ; Branch if not
C3/2491:	20140F  	JSR $0F14      ; Sound: Cursor
C3/2494:	A906    	LDA #$06       ; Frames: 6
C3/2496:	8520    	STA $20        ; Set scroll timer
C3/2498:	A00C00  	LDY #$000C     ; Speed: 12
C3/249B:	849C    	STY $9C        ; Set scroll speed
C3/249D:	A905    	LDA #$05       ; Blinker: Off
C3/249F:	1446    	TRB $46        ; Order cursor: Off
C3/24A1:	A903    	LDA #$03       ; C3/1DFA
C3/24A3:	8527    	STA $27        ; Queue: Main menu
C3/24A5:	A965    	LDA #$65       ; C3/37AF
C3/24A7:	8526    	STA $26        ; Next: Pan screen
C3/24A9:	60      	RTS

Fork: Handle A
C3/24AA:	A508    	LDA $08        ; No-autofire keys
C3/24AC:	8980    	BIT #$80       ; Pushing A?
C3/24AE:	F015    	BEQ $24C5      ; Exit if not
C3/24B0:	201D0F  	JSR $0F1D      ; Sound: Click
C3/24B3:	A54B    	LDA $4B        ; Selected slot
C3/24B5:	8528    	STA $28        ; Set choice 1
C3/24B7:	A910    	LDA #$10       ; C3/24C6
C3/24B9:	8526    	STA $26        ; Next: Choice 2
C3/24BB:	20BC2F  	JSR $2FBC      ; Create blinker
C3/24BE:	204C30  	JSR $304C      ; Unlock all slots
C3/24C1:	A54E    	LDA $4E        ; Cursor row
C3/24C3:	855E    	STA $5E        ; Save for cancel
C3/24C5:	60      	RTS

10: Handle Order menu choice 2
C3/24C6:	201036  	JSR $3610      ; Redraw time
C3/24C9:	A509    	LDA $09        ; No-autofire keys
C3/24CB:	8980    	BIT #$80       ; Pushing B?
C3/24CD:	F013    	BEQ $24E2      ; Branch if not
C3/24CF:	20140F  	JSR $0F14      ; Sound: Cursor
C3/24D2:	A901    	LDA #$01       ; Blinker: Off
C3/24D4:	1446    	TRB $46        ; Set menu flag
C3/24D6:	A90F    	LDA #$0F       ; C3/247F
C3/24D8:	8526    	STA $26        ; Next: Choice 1
C3/24DA:	203330  	JSR $3033      ; Lock empty slots
C3/24DD:	A55E    	LDA $5E        ; Old cursor row
C3/24DF:	854E    	STA $4E        ; Set as current
C3/24E1:	60      	RTS

Fork: Change row
C3/24E2:	A508    	LDA $08        ; No-autofire keys
C3/24E4:	8980    	BIT #$80       ; Pushing A?
C3/24E6:	F033    	BEQ $251B      ; Exit if not
C3/24E8:	201D0F  	JSR $0F1D      ; Sound: Click
C3/24EB:	A528    	LDA $28        ; First selection
C3/24ED:	C54B    	CMP $4B        ; Matches second?
C3/24EF:	D013    	BNE $2504      ; Swap if not
C3/24F1:	A901    	LDA #$01       ; Blinker: Off
C3/24F3:	1446    	TRB $46        ; Set menu flag
C3/24F5:	A912    	LDA #$12       ; C3/25AA
C3/24F7:	8526    	STA $26        ; Next: Wait
C3/24F9:	20AB2E  	JSR $2EAB      ; Set row, scroll
C3/24FC:	A00C00  	LDY #$000C     ; Frames: 12
C3/24FF:	8420    	STY $20        ; Set wait timer
C3/2501:	4C3330  	JMP $3033      ; Lock empty slots

Fork: Switch members
C3/2504:	A910    	LDA #$10       ; Cursor: Freeze
C3/2506:	1446    	TRB $46        ; Set menu flag
C3/2508:	A90C    	LDA #$0C       ; Cursor: Blank
C3/250A:	1445    	TRB $45        ; Unhide chars: N
C3/250C:	204A36  	JSR $364A      ; Queue swap anim
C3/250F:	A918    	LDA #$18       ; Frames: 24
C3/2511:	8522    	STA $22        ; Set anim timer
C3/2513:	A901    	LDA #$01       ; Blinker: Off
C3/2515:	1446    	TRB $46        ; Set menu flag
C3/2517:	A911    	LDA #$11       ; C3/251C
C3/2519:	8526    	STA $26        ; Next: Sustain swap
C3/251B:	60      	RTS

11: Switch members in Order menu
C3/251C:	201036  	JSR $3610      ; Redraw time
C3/251F:	A522    	LDA $22        ; Timer expired?
C3/2521:	F030    	BEQ $2553      ; Finalize if so
C3/2523:	C90C    	CMP #$0C       ; Unhide point?
C3/2525:	D039    	BNE $2560      ; Exit if not
C3/2527:	206B25  	JSR $256B      ; Swap battle pads
C3/252A:	206C2E  	JSR $2E6C      ; Swap actor info
C3/252D:	206125  	JSR $2561      ; Clear icons/faces
C3/2530:	20A971  	JSR $71A9      ; Erase party info
C3/2533:	208C33  	JSR $338C      ; Draw member 1 info
C3/2536:	20D833  	JSR $33D8      ; Draw member 2 info
C3/2539:	202434  	JSR $3424      ; Draw member 3 info
C3/253C:	207034  	JSR $3470      ; Draw member 4 info
C3/253F:	20250E  	JSR $0E25      ; Swap saved cursors
C3/2542:	20680F  	JSR $0F68      ; Queue stats upload
C3/2545:	203330  	JSR $3033      ; Lock empty slots
C3/2548:	201B12  	JSR $121B      ; Run anim queue
C3/254B:	20D313  	JSR $13D3      ; Refresh screen
C3/254E:	A908    	LDA #$08       ; Unhide members: Y
C3/2550:	0445    	TSB $45        ; Set menu flag
C3/2552:	60      	RTS

Fork: Restore control
C3/2553:	A90F    	LDA #$0F       ; C3/247F
C3/2555:	8526    	STA $26        ; Next: Choice 1
C3/2557:	A910    	LDA #$10       ; Cursor: Unfreeze
C3/2559:	0446    	TSB $46        ; Set menu flag
C3/255B:	A904    	LDA #$04       ; Show cursor: Y
C3/255D:	0445    	TSB $45        ; Set menu flag
C3/255F:	60      	RTS            ; ...
C3/2560:	60      	RTS

Delete all portraits and status icons
C3/2561:	20D72E  	JSR $2ED7      ; Portraits: Erase
C3/2564:	A901    	LDA #$01       ; Icons: Delete
C3/2566:	1447    	TRB $47        ; Set menu flag
C3/2568:	4C1B12  	JMP $121B      ; Run anim queue

Swap assigned joypad for switched members
C3/256B:	7B      	TDC            ; Clear A
C3/256C:	AA      	TAX            ; Member slot: 1
C3/256D:	86E0    	STX $E0        ; Char 1+2: Pad 1
C3/256F:	86E2    	STX $E2        ; Char 3+4: Pad 1
C3/2571:	AD4F1D  	LDA $1D4F      ; Game options
C3/2574:	18      	CLC            ; Prepare ROR
C3/2575:	6A      	ROR A          ; Member's joypad
C3/2576:	9002    	BCC $257A      ; Skip if Pad 1
C3/2578:	F6E0    	INC $E0,X      ; Assign Pad 2
C3/257A:	E8      	INX            ; Member slot +1
C3/257B:	E00400  	CPX #$0004     ; Done all 4?
C3/257E:	D0F5    	BNE $2575      ; Loop if not
C3/2580:	7B      	TDC            ; Clear A
C3/2581:	A54B    	LDA $4B        ; Chosen slot B
C3/2583:	AA      	TAX            ; Index it
C3/2584:	B5E0    	LDA $E0,X      ; Member B's pad
C3/2586:	85E5    	STA $E5        ; Memorize it
C3/2588:	A528    	LDA $28        ; Chosen slot A
C3/258A:	AA      	TAX            ; Index it
C3/258B:	B5E0    	LDA $E0,X      ; Member A's pad
C3/258D:	85E6    	STA $E6        ; Memorize it
C3/258F:	A5E5    	LDA $E5        ; Member B's pad
C3/2591:	95E0    	STA $E0,X      ; Set as A's
C3/2593:	A54B    	LDA $4B        ; Chosen slot B
C3/2595:	AA      	TAX            ; Index it
C3/2596:	A5E6    	LDA $E6        ; Member A's pad
C3/2598:	95E0    	STA $E0,X      ; Set as B's
C3/259A:	18      	CLC            ; ...
C3/259B:	A5E3    	LDA $E3        ; Member 4's pad
C3/259D:	0A      	ASL A          ; Put in bit 1
C3/259E:	65E2    	ADC $E2        ; Add member 3's
C3/25A0:	0A      	ASL A          ; Put in bit 1-2
C3/25A1:	65E1    	ADC $E1        ; Add member 2's
C3/25A3:	0A      	ASL A          ; Put in bit 1-3
C3/25A4:	65E0    	ADC $E0        ; Add member 1's
C3/25A6:	8D4F1D  	STA $1D4F      ; Update options
C3/25A9:	60      	RTS

12: Wait while member changes row
C3/25AA:	A420    	LDY $20        ; Timer expired?
C3/25AC:	D004    	BNE $25B2      ; Exit if not
C3/25AE:	A90F    	LDA #$0F       ; C3/247F
C3/25B0:	8526    	STA $26        ; Next: Choice 1
C3/25B2:	60      	RTS

14: Sustain Save menu
C3/25B3:	A54B    	LDA $4B        ; Cursor slot
C3/25B5:	1A      	INC A          ; Now 1-3
C3/25B6:	8566    	STA $66        ; Set save slot
C3/25B8:	206C19  	JSR $196C      ; Refresh actors
C3/25BB:	201316  	JSR $1613      ; Handle D-Pad
C3/25BE:	A509    	LDA $09        ; No-autofire keys
C3/25C0:	8980    	BIT #$80       ; Pushing B?
C3/25C2:	F00C    	BEQ $25D0      ; Branch if not
C3/25C4:	20140F  	JSR $0F14      ; Sound: Cursor
C3/25C7:	A59F    	LDA $9F        ; 04: C3/1AF0
C3/25C9:	8527    	STA $27        ; Queue main menu
C3/25CB:	A953    	LDA #$53       ; C3/1A64
C3/25CD:	8526    	STA $26        ; Next: Fade-out
C3/25CF:	60      	RTS

Fork: Handle A
C3/25D0:	A508    	LDA $08        ; No-autofire keys
C3/25D2:	8980    	BIT #$80       ; Pushing A?
C3/25D4:	F039    	BEQ $260F      ; Exit if not
C3/25D6:	7B      	TDC            ; Clear A
C3/25D7:	A54B    	LDA $4B        ; Cursor slot
C3/25D9:	0A      	ASL A          ; Double it
C3/25DA:	AA      	TAX            ; Index it
C3/25DB:	B491    	LDY $91,X      ; Blank file?
C3/25DD:	D014    	BNE $25F3      ; Branch if not
C3/25DF:	A566    	LDA $66        ; Save slot
C3/25E1:	8D1F02  	STA $021F      ; Link to game
C3/25E4:	20240F  	JSR $0F24      ; Sound: Save
C3/25E7:	205226  	JSR $2652      ; Save game
C3/25EA:	A59E    	LDA $9E        ; Menu init cmd
C3/25EC:	8527    	STA $27        ; Queue Save menu
C3/25EE:	A953    	LDA #$53       ; C3/1A64
C3/25F0:	8526    	STA $26        ; Next: Fade-out
C3/25F2:	60      	RTS

Fork: Invoke confirmation menu
C3/25F3:	201D0F  	JSR $0F1D      ; Sound: Click
C3/25F6:	201519  	JSR $1915      ; Back up SRAM data
C3/25F9:	A54B    	LDA $4B        ; Cursor slot
C3/25FB:	1A      	INC A          ; Now 1-3
C3/25FC:	8566    	STA $66        ; Set save slot
C3/25FE:	20CF15  	JSR $15CF      ; Load save file
C3/2601:	208770  	JSR $7087      ; Move party info
C3/2604:	20FB70  	JSR $70FB      ; Set SRAM party
C3/2607:	A915    	LDA #$15       ; C3/1D49
C3/2609:	8527    	STA $27        ; Queue submenu
C3/260B:	A953    	LDA #$53       ; C3/1A64
C3/260D:	8526    	STA $26        ; Next: Fade-out
C3/260F:	60      	RTS

16: Sustain save confirmation
C3/2610:	204316  	JSR $1643      ; Handle D-Pad
C3/2613:	A509    	LDA $09        ; No-autofire keys
C3/2615:	8980    	BIT #$80       ; Pushing B?
C3/2617:	D01C    	BNE $2635      ; Abort if so
C3/2619:	A508    	LDA $08        ; No-autofire keys
C3/261B:	8980    	BIT #$80       ; Pushing A?
C3/261D:	F032    	BEQ $2651      ; Exit if not
C3/261F:	A54B    	LDA $4B        ; Chose "No"?
C3/2621:	D017    	BNE $263A      ; Abort if so
C3/2623:	A566    	LDA $66        ; Save slot
C3/2625:	8D1F02  	STA $021F      ; Link to game
C3/2628:	20240F  	JSR $0F24      ; Sound: Save
C3/262B:	205226  	JSR $2652      ; Save game
C3/262E:	A59E    	LDA $9E        ; 13: C3/1D06
C3/2630:	8527    	STA $27        ; Queue Save menu
C3/2632:	6426    	STZ $26        ; Next: Fade-out
C3/2634:	60      	RTS

Fork: Pushing B
C3/2635:	20140F  	JSR $0F14      ; Sound: Cursor
C3/2638:	8003    	BRA $263D      ; Skip a line

Fork: Chose "No"
C3/263A:	201D0F  	JSR $0F1D      ; Sound: Click
C3/263D:	202A19  	JSR $192A      ; Restore SRAM
C3/2640:	208770  	JSR $7087      ; And party info
C3/2643:	20FB70  	JSR $70FB      ; Set SRAM party
C3/2646:	A913    	LDA #$13       ; C3/1D06
C3/2648:	8527    	STA $27        ; Queue Save menu
C3/264A:	6426    	STZ $26        ; Next: Fade-out
C3/264C:	A566    	LDA $66        ; File number
C3/264E:	8D2402  	STA $0224      ; Set last viewed
C3/2651:	60      	RTS

Restore SRAM block and record game data
C3/2652:	202A19  	JSR $192A      ; Restore SRAM
C3/2655:	208770  	JSR $7087      ; And party info
C3/2658:	20FB70  	JSR $70FB      ; Set SRAM party
C3/265B:	C220    	REP #$20       ; 16-bit A
C3/265D:	EEC71D  	INC $1DC7      ; Save count +1
C3/2660:	E220    	SEP #$20       ; 8-bit A
C3/2662:	A566    	LDA $66        ; File number
C3/2664:	4C8815  	JMP $1588      ; Save game data

17: Handle Item menu options
C3/2667:	A9C0    	LDA #$C0       ; Scrollbar: Off
C3/2669:	1446    	TRB $46        ; Set anim index
C3/266B:	A910    	LDA #$10       ; Reset/Stop desc
C3/266D:	0445    	TSB $45        ; Set menu flag
C3/266F:	20680F  	JSR $0F68      ; Queue stock upload
C3/2672:	203B85  	JSR $853B      ; Handle D-Pad
C3/2675:	A509    	LDA $09        ; No-autofire keys
C3/2677:	8980    	BIT #$80       ; Pushing B?
C3/2679:	F009    	BEQ $2684      ; Branch if not
C3/267B:	20140F  	JSR $0F14      ; Sound: Cursor
C3/267E:	A904    	LDA #$04       ; C3/1AF0
C3/2680:	8527    	STA $27        ; Queue main menu
C3/2682:	6426    	STZ $26        ; Next: Fade-out
C3/2684:	A508    	LDA $08        ; No-autofire keys
C3/2686:	8980    	BIT #$80       ; Pushing A?
C3/2688:	F006    	BEQ $2690      ; Exit if not
C3/268A:	201D0F  	JSR $0F1D      ; Sound: Click
C3/268D:	209126  	JSR $2691      ; Handle choice
C3/2690:	60      	RTS

Handle selected Item menu option
C3/2691:	7B      	TDC            ; Clear A
C3/2692:	A54B    	LDA $4B        ; Cursor slot
C3/2694:	0A      	ASL A          ; Double it
C3/2695:	AA      	TAX            ; Index it
C3/2696:	7C9926  	JMP ($2699,X)  ; Handle option

Jump table for the above
C3/2699:	9F26    	; USE
C3/269B:	EF26    	; ARRANGE
C3/269D:	0127    	; RARE

Handle "USE" selection in Item menu
C3/269F:	20A384  	JSR $84A3      ; Load navig data
C3/26A2:	AD4E1D  	LDA $1D4E      ; Game options
C3/26A5:	2940    	AND #$40       ; Cursor memory?
C3/26A7:	F005    	BEQ $26AE      ; Branch if not
C3/26A9:	20170E  	JSR $0E17      ; Restore cursor
C3/26AC:	8010    	BRA $26BE      ; Skip cursor reset
C3/26AE:	AD3102  	LDA $0231      ; Old scroll pos
C3/26B1:	854A    	STA $4A        ; Set as current
C3/26B3:	A44D    	LDY $4D        ; Cursor position
C3/26B5:	844F    	STY $4F        ; Set as list loc
C3/26B7:	A54A    	LDA $4A        ; Scroll position
C3/26B9:	18      	CLC            ; Prepare ADC
C3/26BA:	6550    	ADC $50        ; Add list V-Slot
C3/26BC:	8550    	STA $50        ; Set list V-Slot
C3/26BE:	20AC84  	JSR $84AC      ; Relocate cursor
C3/26C1:	20BC85  	JSR $85BC      ; Draw inventory
C3/26C4:	20728A  	JSR $8A72      ; Desc; item count
C3/26C7:	20A40F  	JSR $0FA4      ; Queue BG3 upload
C3/26CA:	20D313  	JSR $13D3      ; Refresh screen
C3/26CD:	20A409  	JSR $09A4      ; Create scrollbar
C3/26D0:	C220    	REP #$20       ; 16-bit A
C3/26D2:	A9EA00  	LDA #$00EA     ; V-Speed: 0.914 px
C3/26D5:	9F4A357E	STA $7E354A,X  ; Set scrollbar's
C3/26D9:	A95800  	LDA #$0058     ; Y: 88
C3/26DC:	9FCA347E	STA $7E34CA,X  ; Set scrollbar's
C3/26E0:	E220    	SEP #$20       ; 8-bit A
C3/26E2:	A908    	LDA #$08       ; C3/1F5D
C3/26E4:	8526    	STA $26        ; Next: Choice 1
C3/26E6:	A900    	LDA #$00       ; Min slot: 0
C3/26E8:	A051B1  	LDY #$B151     ; C3/B151
C3/26EB:	20DE11  	JSR $11DE      ; Queue desc update
C3/26EE:	60      	RTS

Handle "ARRANGE" selection in Item menu
C3/26EF:	20A971  	JSR $71A9      ; Hide inventory
C3/26F2:	202B27  	JSR $272B      ; Move inventory
C3/26F5:	205327  	JSR $2753      ; Sort inventory
C3/26F8:	203787  	JSR $8737      ; Redraw inventory
C3/26FB:	202F85  	JSR $852F      ; Load navig data
C3/26FE:	4C941F  	JMP $1F94      ; Move cursor, etc.

Initialize rare item menu
C3/2701:	20DF84  	JSR $84DF      ; Load navig data
C3/2704:	AD4E1D  	LDA $1D4E      ; Game options
C3/2707:	2940    	AND #$40       ; Cursor memory?
C3/2709:	F005    	BEQ $2710      ; Branch if not
C3/270B:	AC3202  	LDY $0232      ; Former position
C3/270E:	844D    	STY $4D        ; Set as current
C3/2710:	20E884  	JSR $84E8      ; Relocate cursor
C3/2713:	200C8B  	JSR $8B0C      ; Draw item list
C3/2716:	20FF1B  	JSR $1BFF      ; Queue desc anim
C3/2719:	20BA8A  	JSR $8ABA      ; Get desc/draw count
C3/271C:	20A40F  	JSR $0FA4      ; Queue count upload
C3/271F:	20D313  	JSR $13D3      ; Refresh screen
C3/2722:	A9C0    	LDA #$C0       ; Scrollbar: Off
C3/2724:	1446    	TRB $46        ; Set anim index
C3/2726:	A918    	LDA #$18       ; C3/27B4
C3/2728:	8526    	STA $26        ; Next: Sustain menu
C3/272A:	60      	RTS

Relocate inventory for sorting, delete original
C3/272B:	7B      	TDC            ; ...
C3/272C:	AA      	TAX            ; Item slot: 1
C3/272D:	BD6918  	LDA $1869,X    ; Item in slot
C3/2730:	9F8DAA7E	STA $7EAA8D,X  ; Put in buffer
C3/2734:	A9FF    	LDA #$FF       ; Empty item
C3/2736:	9D6918  	STA $1869,X    ; Clear slot
C3/2739:	E8      	INX            ; Item slot +1
C3/273A:	E00001  	CPX #$0100     ; Done all 256?
C3/273D:	D0EE    	BNE $272D      ; Loop if not
C3/273F:	7B      	TDC            ; Clear A
C3/2740:	AA      	TAX            ; Item slot: 1
C3/2741:	BD6919  	LDA $1969,X    ; Item quantity
C3/2744:	9F8DAB7E	STA $7EAB8D,X  ; Put in buffer
C3/2748:	7B      	TDC            ; Quantity: 0
C3/2749:	9D6919  	STA $1969,X    ; Clear original
C3/274C:	E8      	INX            ; Item slot +1
C3/274D:	E00001  	CPX #$0100     ; Done all 256?
C3/2750:	D0EF    	BNE $2741      ; Loop if not
C3/2752:	60      	RTS

Sort inventory based on item icons
C3/2753:	7B      	TDC            ; Clear A
C3/2754:	A8      	TAY            ; Item slot: 1
C3/2755:	AA      	TAX            ; Icon index: 0
C3/2756:	BF6827C3	LDA $C32768,X  ; Item icon
C3/275A:	DA      	PHX            ; Save index
C3/275B:	85E0    	STA $E0        ; Set class
C3/275D:	207927  	JSR $2779      ; Get such items
C3/2760:	FA      	PLX            ; Icon index
C3/2761:	E8      	INX            ; Index +1
C3/2762:	E01100  	CPX #$0011     ; Done 17 icons?
C3/2765:	D0EF    	BNE $2756      ; Loop if not
C3/2767:	60      	RTS

Ordered list of item icons for Arrange command
C3/2768:	FF      	; No icon
C3/2769:	E3      	; Dirk
C3/276A:	E4      	; Sword
C3/276B:	E5      	; Lance
C3/276C:	E6      	; Knife
C3/276D:	E7      	; Rod
C3/276E:	E8      	; Brush
C3/276F:	E9      	; Stars
C3/2770:	EA      	; Special
C3/2771:	EB      	; Gambler
C3/2772:	EC      	; Claw
C3/2773:	ED      	; Shield
C3/2774:	F0      	; Helmet
C3/2775:	F1      	; Armor
C3/2776:	F2      	; Tool
C3/2777:	F3      	; Skean
C3/2778:	F4      	; Relic

Copy all items with given icon from buffer to inventory
C3/2779:	7B      	TDC            ; Clear A
C3/277A:	AA      	TAX            ; Buffer slot: 1
C3/277B:	DA      	PHX            ; Save buffer slot
C3/277C:	BF8DAA7E	LDA $7EAA8D,X  ; Item in slot
C3/2780:	C9FF    	CMP #$FF       ; None?
C3/2782:	F028    	BEQ $27AC      ; Skip if so
C3/2784:	8D0242  	STA $4202      ; Set multiplicand
C3/2787:	A909    	LDA #$09       ; Name length
C3/2789:	8D0342  	STA $4203      ; Set multiplier
C3/278C:	EA      	NOP
C3/278D:	EA      	NOP
C3/278E:	EA      	NOP
C3/278F:	AE1642  	LDX $4216      ; Index product
C3/2792:	BF00F7E6	LDA $E6F700,X  ; Item icon
C3/2796:	C5E0    	CMP $E0        ; Sought type?
C3/2798:	D012    	BNE $27AC      ; Skip if not
C3/279A:	FA      	PLX            ; Buffer slot
C3/279B:	BF8DAA7E	LDA $7EAA8D,X  ; Item in slot
C3/279F:	996918  	STA $1869,Y    ; Put in stock
C3/27A2:	BF8DAB7E	LDA $7EAB8D,X  ; Item quantity
C3/27A6:	996919  	STA $1969,Y    ; Put in stock
C3/27A9:	C8      	INY            ; Stock slot +1
C3/27AA:	8001    	BRA $27AD      ; Skip a line
C3/27AC:	FA      	PLX            ; Buffer slot
C3/27AD:	E8      	INX            ; Buffer slot +1
C3/27AE:	E00001  	CPX #$0100     ; Done all 256?
C3/27B1:	D0C8    	BNE $277B      ; Loop if not
C3/27B3:	60      	RTS

18: Sustain rare item menu
C3/27B4:	A910    	LDA #$10       ; Description: On
C3/27B6:	1445    	TRB $45        ; Set menu flag
C3/27B8:	20680F  	JSR $0F68      ; Queue list upload
C3/27BB:	20E584  	JSR $84E5      ; Handle D-Pad
C3/27BE:	20BA8A  	JSR $8ABA      ; Get desc/draw count
C3/27C1:	A509    	LDA $09        ; No-autofire keys
C3/27C3:	8980    	BIT #$80       ; Pushing B?
C3/27C5:	F024    	BEQ $27EB      ; Exit if not
C3/27C7:	20140F  	JSR $0F14      ; Sound: Cursor
C3/27CA:	A917    	LDA #$17       ; C3/2667
C3/27CC:	8526    	STA $26        ; Next: Option list
C3/27CE:	A44D    	LDY $4D        ; Cursor position
C3/27D0:	8C3202  	STY $0232      ; To cursor memory
C3/27D3:	202F85  	JSR $852F      ; Load navig data
C3/27D6:	AD4E1D  	LDA $1D4E      ; Game options
C3/27D9:	2940    	AND #$40       ; Cursor memory?
C3/27DB:	F005    	BEQ $27E2      ; Branch if not
C3/27DD:	AC3402  	LDY $0234      ; Former position
C3/27E0:	844D    	STY $4D        ; Set as current
C3/27E2:	203585  	JSR $8535      ; Relocate cursor
C3/27E5:	20068B  	JSR $8B06      ; Blank item count
C3/27E8:	4CA40F  	JMP $0FA4      ; Queue its upload
C3/27EB:	60      	RTS

19: Handle Item menu choice 2
C3/27EC:	20680F  	JSR $0F68      ; Queue list upload
C3/27EF:	20A984  	JSR $84A9      ; Handle D-Pad
C3/27F2:	20728A  	JSR $8A72      ; Load description
C3/27F5:	A509    	LDA $09        ; No-autofire keys
C3/27F7:	8980    	BIT #$80       ; Pushing B?
C3/27F9:	F00C    	BEQ $2807      ; Branch if not
C3/27FB:	20140F  	JSR $0F14      ; Sound: Cursor
C3/27FE:	A901    	LDA #$01       ; Blinker: Off
C3/2800:	1446    	TRB $46        ; Set menu flag
C3/2802:	A908    	LDA #$08       ; C3/1F5D
C3/2804:	8526    	STA $26        ; Next: Choice 1
C3/2806:	60      	RTS

Fork: Handle A
C3/2807:	A508    	LDA $08        ; No-autofire keys
C3/2809:	8980    	BIT #$80       ; Pushing A?
C3/280B:	F047    	BEQ $2854      ; Exit if not
C3/280D:	201D0F  	JSR $0F1D      ; Sound: Click
C3/2810:	A528    	LDA $28        ; First selection
C3/2812:	C54B    	CMP $4B        ; Matches second?
C3/2814:	D007    	BNE $281D      ; Swap them if not
C3/2816:	A901    	LDA #$01       ; Blinker: Off
C3/2818:	1446    	TRB $46        ; Set menu flag
C3/281A:	4C228C  	JMP $8C22      ; Handle item

Fork: Switch items
C3/281D:	A910    	LDA #$10       ; Reset/Stop desc
C3/281F:	0445    	TSB $45        ; Set menu flag
C3/2821:	A901    	LDA #$01       ; Blinker: Off
C3/2823:	1446    	TRB $46        ; Set menu flag
C3/2825:	A908    	LDA #$08       ; C3/1F5D
C3/2827:	8526    	STA $26        ; Next: Choice 1
C3/2829:	7B      	TDC            ; Clear A
C3/282A:	A528    	LDA $28        ; Slot A
C3/282C:	A8      	TAY            ; Index it
C3/282D:	B96918  	LDA $1869,Y    ; Item A
C3/2830:	85E0    	STA $E0        ; Save it
C3/2832:	B96919  	LDA $1969,Y    ; Quantity A
C3/2835:	85E1    	STA $E1        ; Save it
C3/2837:	7B      	TDC            ; ...
C3/2838:	A54B    	LDA $4B        ; Slot B
C3/283A:	AA      	TAX            ; Index it
C3/283B:	BD6918  	LDA $1869,X    ; Item B
C3/283E:	996918  	STA $1869,Y    ; Replace A
C3/2841:	A5E0    	LDA $E0        ; Item A
C3/2843:	9D6918  	STA $1869,X    ; Replace B
C3/2846:	BD6919  	LDA $1969,X    ; Quantity B
C3/2849:	996919  	STA $1969,Y    ; Replace A
C3/284C:	A5E1    	LDA $E1        ; Quantity A
C3/284E:	9D6919  	STA $1969,X    ; Replace B
C3/2851:	4C3787  	JMP $8737      ; Redraw list
C3/2854:	60      	RTS

1A: Sustain Magic menu
C3/2855:	A910    	LDA #$10       ; Description: On
C3/2857:	1445    	TRB $45        ; Set menu flag
C3/2859:	A901    	LDA #$01       ; List type: Magic
C3/285B:	852A    	STA $2A        ; Set redraw mode
C3/285D:	20680F  	JSR $0F68      ; Queue list upload
C3/2860:	AD1E02  	LDA $021E      ; Frame counter
C3/2863:	6A      	ROR A          ; Even value?
C3/2864:	9005    	BCC $286B      ; Favor desc if so
C3/2866:	20E00F  	JSR $0FE0      ; Queue cost upload
C3/2869:	8003    	BRA $286E      ; Skip a line
C3/286B:	2001B3  	JSR $B301      ; Queue desc upload
C3/286E:	20CA1F  	JSR $1FCA      ; Handle L and R
C3/2871:	B061    	BCS $28D4      ; Exit if pushed
C3/2873:	204B52  	JSR $524B      ; Handle D-Pad
C3/2876:	20425D  	JSR $5D42      ; Load description
C3/2879:	209558  	JSR $5895      ; Draw MP cost

Fork: Handle Y
C3/287C:	A509    	LDA $09        ; No-autofire keys
C3/287E:	8940    	BIT #$40       ; Pushing Y?
C3/2880:	F013    	BEQ $2895      ; Branch if not
C3/2882:	201D0F  	JSR $0F1D      ; Sound: Click
C3/2885:	A59E    	LDA $9E        ; MP display switch
C3/2887:	49FF    	EOR #$FF       ; Toggle it
C3/2889:	859E    	STA $9E        ; Save changes
C3/288B:	A910    	LDA #$10       ; Reset/Stop desc
C3/288D:	0445    	TSB $45        ; Set menu flag
C3/288F:	20EB55  	JSR $55EB      ; Build spell list
C3/2892:	4C5956  	JMP $5659      ; Draw spell list

Fork: Handle A
C3/2895:	A508    	LDA $08        ; No-autofire keys
C3/2897:	8980    	BIT #$80       ; Pushing A?
C3/2899:	F02D    	BEQ $28C8      ; Branch if not
C3/289B:	7B      	TDC            ; Clear A
C3/289C:	A54B    	LDA $4B        ; Spell slot
C3/289E:	AA      	TAX            ; Index it
C3/289F:	BF099E7E	LDA $7E9E09,X  ; Spell palette
C3/28A3:	C920    	CMP #$20       ; User's color?
C3/28A5:	D02E    	BNE $28D5      ; Fail if not
C3/28A7:	201D0F  	JSR $0F1D      ; Sound: Click
C3/28AA:	A44F    	LDY $4F        ; Cursor position
C3/28AC:	848E    	STY $8E        ; Set return loc
C3/28AE:	A54A    	LDA $4A        ; Scroll position
C3/28B0:	8590    	STA $90        ; Set return loc
C3/28B2:	A54B    	LDA $4B        ; Cursor slot
C3/28B4:	8599    	STA $99        ; Set spell slot
C3/28B6:	20AE2D  	JSR $2DAE      ; Spell
C3/28B9:	C912    	CMP #$12       ; X-Zone?
C3/28BB:	F01F    	BEQ $28DC      ; Branch if so
C3/28BD:	C92A    	CMP #$2A       ; Warp?
C3/28BF:	F026    	BEQ $28E7      ; Branch if so
C3/28C1:	A93A    	LDA #$3A       ; C3/2B00
C3/28C3:	8527    	STA $27        ; Queue usage menu
C3/28C5:	6426    	STZ $26        ; Next: Fade-out
C3/28C7:	60      	RTS

Fork: Handle B
C3/28C8:	A509    	LDA $09        ; No-autofire keys
C3/28CA:	8980    	BIT #$80       ; Pushing B?
C3/28CC:	F006    	BEQ $28D4      ; Exit if not
C3/28CE:	20680F  	JSR $0F68      ; Queue BG1 upload
C3/28D1:	20402A  	JSR $2A40      ; Exit submenu
C3/28D4:	60      	RTS

Fork: Unusable spell
C3/28D5:	202B0F  	JSR $0F2B      ; Play buzzer
C3/28D8:	20F830  	JSR $30F8      ; Pixelate screen
C3/28DB:	60      	RTS

Fork: X-Zone (unused)
C3/28DC:	AD0102  	LDA $0201      ; Area permissions
C3/28DF:	8901    	BIT #$01       ; Forbid X-Zone?
C3/28E1:	F0F2    	BEQ $28D5      ; Fail if so
C3/28E3:	A904    	LDA #$04       ; Event: X-Zone
C3/28E5:	8009    	BRA $28F0      ; Lower caster's MP

Fork: Warp
C3/28E7:	AD0102  	LDA $0201      ; Area permissions
C3/28EA:	8902    	BIT #$02       ; Can warp here?
C3/28EC:	F0E7    	BEQ $28D5      ; Fail if not
C3/28EE:	A903    	LDA #$03       ; Event: Warp
C3/28F0:	8D0502  	STA $0205      ; Set aftereffect
C3/28F3:	20852D  	JSR $2D85      ; Lower caster's MP
C3/28F6:	A9FF    	LDA #$FF       ; Null value
C3/28F8:	8527    	STA $27        ; Queue menu exit
C3/28FA:	6426    	STZ $26        ; Next: Fade-out
C3/28FC:	60      	RTS

1B: Sustain Lore menu
C3/28FD:	A910    	LDA #$10       ; Description: On
C3/28FF:	1445    	TRB $45        ; Set menu flag
C3/2901:	A902    	LDA #$02       ; List type: Lores
C3/2903:	852A    	STA $2A        ; Set redraw mode
C3/2905:	20680F  	JSR $0F68      ; Queue list upload
C3/2908:	20CA1F  	JSR $1FCA      ; Handle L and R
C3/290B:	B00F    	BCS $291C      ; Exit if pushed
C3/290D:	20D352  	JSR $52D3      ; Handle D-Pad
C3/2910:	20485D  	JSR $5D48      ; Load description
C3/2913:	A509    	LDA $09        ; No-autofire keys
C3/2915:	8980    	BIT #$80       ; Pushing B?
C3/2917:	F003    	BEQ $291C      ; Exit if not
C3/2919:	20402A  	JSR $2A40      ; Leave submenu
C3/291C:	60      	RTS

1C: Sustain Dance menu
C3/291D:	20680F  	JSR $0F68      ; Queue list upload
C3/2920:	20AD52  	JSR $52AD      ; Handle D-Pad
C3/2923:	A509    	LDA $09        ; No-autofire keys
C3/2925:	8980    	BIT #$80       ; Pushing B?
C3/2927:	F003    	BEQ $292C      ; Exit if not
C3/2929:	20402A  	JSR $2A40      ; Leave submenu
C3/292C:	60      	RTS

1D: Sustain Rage menu
C3/292D:	A903    	LDA #$03       ; List type: Rages
C3/292F:	852A    	STA $2A        ; Set redraw mode
C3/2931:	20680F  	JSR $0F68      ; Queue list upload
C3/2934:	20CA1F  	JSR $1FCA      ; Handle L and R
C3/2937:	B00C    	BCS $2945      ; Exit if pushed
C3/2939:	200B53  	JSR $530B      ; Handle D-Pad
C3/293C:	A509    	LDA $09        ; No-autofire keys
C3/293E:	8980    	BIT #$80       ; Pushing B?
C3/2940:	F003    	BEQ $2945      ; Exit if not
C3/2942:	20402A  	JSR $2A40      ; Leave submenu
C3/2945:	60      	RTS

1E: Handle esper selection
C3/2946:	A910    	LDA #$10       ; Description: On
C3/2948:	1445    	TRB $45        ; Set menu flag
C3/294A:	A904    	LDA #$04       ; List type: Espers
C3/294C:	852A    	STA $2A        ; Set redraw mode
C3/294E:	20680F  	JSR $0F68      ; Queue list upload
C3/2951:	20CA1F  	JSR $1FCA      ; Handle L and R
C3/2954:	B045    	BCS $299B      ; Exit if pushed
C3/2956:	20D352  	JSR $52D3      ; Handle D-Pad
C3/2959:	203C5D  	JSR $5D3C      ; Load description
C3/295C:	A508    	LDA $08        ; No-autofire keys
C3/295E:	8980    	BIT #$80       ; Pushing A?
C3/2960:	F02C    	BEQ $298E      ; Branch if not
C3/2962:	201D0F  	JSR $0F1D      ; Sound: Click
C3/2965:	7B      	TDC            ; Clear A
C3/2966:	A54B    	LDA $4B        ; Selected slot
C3/2968:	AA      	TAX            ; Index it
C3/2969:	BF899D7E	LDA $7E9D89,X  ; Esper in slot
C3/296D:	C9FF    	CMP #$FF       ; None?
C3/296F:	F00A    	BEQ $297B      ; Unequip if so
C3/2971:	8599    	STA $99        ; Memorize esper
C3/2973:	20EC5E  	JSR $5EEC      ; Init submenu
C3/2976:	A94D    	LDA #$4D       ; C3/5F23
C3/2978:	8526    	STA $26        ; Next: Data menu
C3/297A:	60      	RTS

Fork: Unequip esper
C3/297B:	A9FF    	LDA #$FF       ; Value for empty
C3/297D:	85E0    	STA $E0        ; Set esper to equip
C3/297F:	209C29  	JSR $299C      ; Clear esper held
C3/2982:	20C65A  	JSR $5AC6      ; Redraw esper list
C3/2985:	207C0F  	JSR $0F7C      ; Queue stats upload
C3/2988:	20D313  	JSR $13D3      ; Refresh held esper
C3/298B:	4C680F  	JMP $0F68      ; Queue list upload

Fork: Handle B
C3/298E:	A509    	LDA $09        ; No-autofire keys
C3/2990:	8980    	BIT #$80       ; Pushing B?
C3/2992:	F007    	BEQ $299B      ; Exit if not
C3/2994:	A908    	LDA #$08       ; Blinker: Off
C3/2996:	1446    	TRB $46        ; Set menu flag
C3/2998:	20402A  	JSR $2A40      ; Leave submenu
C3/299B:	60      	RTS

Equip and draw selected esper
C3/299C:	7B      	TDC            ; Clear A
C3/299D:	A528    	LDA $28        ; Member slot
C3/299F:	0A      	ASL A          ; Double it
C3/29A0:	AA      	TAX            ; Index it
C3/29A1:	B46D    	LDY $6D,X      ; Actor's address
C3/29A3:	A5E0    	LDA $E0        ; Chosen esper
C3/29A5:	991E00  	STA $001E,Y    ; Assign to actor
C3/29A8:	A5E0    	LDA $E0        ; ...
C3/29AA:	4CD755  	JMP $55D7      ; Draw it by actor

34: Wait while showing who holds esper
C3/29AD:	A420    	LDY $20        ; Timer expired?
C3/29AF:	D009    	BNE $29BA      ; Exit if not
C3/29B1:	A0BB29  	LDY #$29BB     ; Text pointer
C3/29B4:	202603  	JSR $0326      ; Blank message
C3/29B7:	4C685F  	JMP $5F68      ; Exit submenu
C3/29BA:	60      	RTS

Positioned spaces for blanking "<actor> has it!"
C3/29BB:	DD40 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00

39: Sustain party gear overview
C3/29D0:	A509    	LDA $09        ; No-autofire keys
C3/29D2:	8980    	BIT #$80       ; Pushing B?
C3/29D4:	F00A    	BEQ $29E0      ; Exit if not
C3/29D6:	20140F  	JSR $0F14      ; Sound: Cursor
C3/29D9:	A904    	LDA #$04       ; C3/1AF0
C3/29DB:	8527    	STA $27        ; Queue main menu
C3/29DD:	6426    	STZ $26        ; Next: Fade-out
C3/29DF:	60      	RTS            ; ...
C3/29E0:	60      	RTS

33: Sustain Blitz menu
C3/29E1:	A910    	LDA #$10       ; Description: On
C3/29E3:	1445    	TRB $45        ; Set menu flag
C3/29E5:	20680F  	JSR $0F68      ; Queue list upload
C3/29E8:	20AD52  	JSR $52AD      ; Handle D-Pad
C3/29EB:	20725D  	JSR $5D72      ; Load description
C3/29EE:	A509    	LDA $09        ; No-autofire keys
C3/29F0:	8980    	BIT #$80       ; Pushing B?
C3/29F2:	F003    	BEQ $29F7      ; Exit if not
C3/29F4:	20402A  	JSR $2A40      ; Leave submenu
C3/29F7:	60      	RTS

3E: Sustain SwdTech menu
C3/29F8:	A910    	LDA #$10       ; Description: On
C3/29FA:	1445    	TRB $45        ; Set menu flag
C3/29FC:	20680F  	JSR $0F68      ; Queue list upload
C3/29FF:	20AD52  	JSR $52AD      ; Handle D-Pad
C3/2A02:	205D5D  	JSR $5D5D      ; Load description
C3/2A05:	A508    	LDA $08        ; No-autofire keys
C3/2A07:	8980    	BIT #$80       ; Pushing A?
C3/2A09:	F01F    	BEQ $2A2A      ; Branch if not
C3/2A0B:	7B      	TDC            ; Clear A
C3/2A0C:	A54B    	LDA $4B        ; Cursor slot
C3/2A0E:	AA      	TAX            ; Index it
C3/2A0F:	BF899D7E	LDA $7E9D89,X  ; SwdTech in slot
C3/2A13:	300F    	BMI $2A24      ; Fail if none
C3/2A15:	8D0602  	STA $0206      ; Set chosen tech
C3/2A18:	A9FF    	LDA #$FF       ; SwdTech renaming
C3/2A1A:	8D0502  	STA $0205      ; Set next menu
C3/2A1D:	A9FF    	LDA #$FF       ; Null value
C3/2A1F:	8527    	STA $27        ; Queue menu exit
C3/2A21:	6426    	STZ $26        ; Next: Fade-out
C3/2A23:	60      	RTS

Fork: Invalid selection
C3/2A24:	202B0F  	JSR $0F2B      ; Play buzzer
C3/2A27:	20F830  	JSR $30F8      ; Pixelate screen

Fork: Handle B
C3/2A2A:	A509    	LDA $09        ; No-autofire keys
C3/2A2C:	8980    	BIT #$80       ; Pushing B?
C3/2A2E:	F00F    	BEQ $2A3F      ; Exit if not
C3/2A30:	20D571  	JSR $71D5      ; Clear BG3 map B
C3/2A33:	20C5AF  	JSR $AFC5      ; Build desc map
C3/2A36:	20B80F  	JSR $0FB8      ; Queue its upload
C3/2A39:	20D313  	JSR $13D3      ; Upload it now
C3/2A3C:	20402A  	JSR $2A40      ; Leave submenu
C3/2A3F:	60      	RTS

Return to Skills menu
C3/2A40:	20140F  	JSR $0F14      ; Sound: Cursor
C3/2A43:	A400    	LDY $00        ; X: 0
C3/2A45:	8439    	STY $39        ; Set BG2 X-Pos
C3/2A47:	843D    	STY $3D        ; Set BG3 X-Pos
C3/2A49:	A90A    	LDA #$0A       ; C3/205A
C3/2A4B:	8526    	STA $26        ; Next: Skills menu
C3/2A4D:	20E753  	JSR $53E7      ; Erase spell list
C3/2A50:	201352  	JSR $5213      ; Load navig data
C3/2A53:	A55E    	LDA $5E        ; Old cursor row
C3/2A55:	854E    	STA $4E        ; Set as current
C3/2A57:	201C52  	JSR $521C      ; Relocate cursor
C3/2A5A:	4C665E  	JMP $5E66      ; Remove portrait

21: Sustain Load menu
C3/2A5D:	A54B    	LDA $4B        ; Cursor slot
C3/2A5F:	8566    	STA $66        ; Set save slot
C3/2A61:	206C19  	JSR $196C      ; Refresh actors
C3/2A64:	202716  	JSR $1627      ; Handle D-Pad
C3/2A67:	A508    	LDA $08        ; No-autofire keys
C3/2A69:	8980    	BIT #$80       ; Pushing A?
C3/2A6B:	F034    	BEQ $2AA1      ; Exit if not
C3/2A6D:	7B      	TDC            ; Clear A
C3/2A6E:	A54B    	LDA $4B        ; On new game?
C3/2A70:	F030    	BEQ $2AA2      ; Branch if so
C3/2A72:	8566    	STA $66        ; Set save slot
C3/2A74:	3A      	DEC A          ; Now 0-2
C3/2A75:	0A      	ASL A          ; Double it
C3/2A76:	AA      	TAX            ; Index it
C3/2A77:	B491    	LDY $91,X      ; Blank file?
C3/2A79:	F020    	BEQ $2A9B      ; Fail if so
C3/2A7B:	201519  	JSR $1915      ; Back up SRAM data
C3/2A7E:	201D0F  	JSR $0F1D      ; Sound: Click
C3/2A81:	A566    	LDA $66        ; Chosen save file
C3/2A83:	8D2402  	STA $0224      ; Set last viewed
C3/2A86:	20CF15  	JSR $15CF      ; Load save file
C3/2A89:	208770  	JSR $7087      ; Move party info
C3/2A8C:	20FB70  	JSR $70FB      ; Set SRAM party
C3/2A8F:	20FE15  	JSR $15FE      ; Move timer data
C3/2A92:	A922    	LDA #$22       ; C3/1DB7
C3/2A94:	8527    	STA $27        ; Queue confirm menu
C3/2A96:	A953    	LDA #$53       ; C3/1A64
C3/2A98:	8526    	STA $26        ; Next: Fade-out
C3/2A9A:	60      	RTS

Fork: Blank file
C3/2A9B:	202B0F  	JSR $0F2B      ; Play buzzer
C3/2A9E:	20F830  	JSR $30F8      ; Pixelate screen
C3/2AA1:	60      	RTS

Fork: New game
C3/2AA2:	201D0F  	JSR $0F1D      ; Sound: Click
C3/2AA5:	20BC2A  	JSR $2ABC      ; Reset play time
C3/2AA8:	A901    	LDA #$01       ; Save file: 1st
C3/2AAA:	8D2402  	STA $0224      ; Set last viewed
C3/2AAD:	9C1F02  	STZ $021F      ; Game's file: None
C3/2AB0:	9C0502  	STZ $0205      ; Set new game mode
C3/2AB3:	A9FF    	LDA #$FF       ; Null value
C3/2AB5:	8527    	STA $27        ; Queue menu exit
C3/2AB7:	A953    	LDA #$53       ; C3/1A64
C3/2AB9:	8526    	STA $26        ; Next: Fade-out
C3/2ABB:	60      	RTS

Reset play time
C3/2ABC:	7B      	TDC            ; Clear A
C3/2ABD:	A8      	TAY            ; Clear Y
C3/2ABE:	8C1B02  	STY $021B      ; Zero hours, mins
C3/2AC1:	8C1D02  	STY $021D      ; Zero secs, frames
C3/2AC4:	60      	RTS

23: Sustain load confirmation
C3/2AC5:	204316  	JSR $1643      ; Handle D-Pad
C3/2AC8:	A509    	LDA $09        ; No-autofire keys
C3/2ACA:	8980    	BIT #$80       ; Pushing B?
C3/2ACC:	D025    	BNE $2AF3      ; Abort if so
C3/2ACE:	A508    	LDA $08        ; No-autofire keys
C3/2AD0:	8980    	BIT #$80       ; Pushing A?
C3/2AD2:	F02B    	BEQ $2AFF      ; Exit if not
C3/2AD4:	201D0F  	JSR $0F1D      ; Sound: Click
C3/2AD7:	A54B    	LDA $4B        ; Chose "No"?
C3/2AD9:	D01B    	BNE $2AF6      ; Abort if so
C3/2ADB:	AC6318  	LDY $1863      ; File's hrs, mins
C3/2ADE:	8C1B02  	STY $021B      ; Set as current
C3/2AE1:	AD6518  	LDA $1865      ; File's seconds
C3/2AE4:	8D1D02  	STA $021D      ; Set as current
C3/2AE7:	A566    	LDA $66        ; Loaded file
C3/2AE9:	8D1F02  	STA $021F      ; Link to game
C3/2AEC:	A9FF    	LDA #$FF       ; Null value
C3/2AEE:	8527    	STA $27        ; Queue menu exit
C3/2AF0:	6426    	STZ $26        ; Next: Fade-out
C3/2AF2:	60      	RTS

Fork: Chose "No"
C3/2AF3:	20140F  	JSR $0F14      ; Sound: Cursor
C3/2AF6:	202A19  	JSR $192A      ; Restore SRAM
C3/2AF9:	A920    	LDA #$20       ; C3/1D69
C3/2AFB:	8527    	STA $27        ; Queue Load menu
C3/2AFD:	6426    	STZ $26        ; Next: Fade-out
C3/2AFF:	60      	RTS

3A: Initialize spell usage menu
C3/2B00:	A940    	LDA #$40       ; No cursor memory
C3/2B02:	0445    	TSB $45        ; Set menu flag
C3/2B04:	20112B  	JSR $2B11      ; Init variables
C3/2B07:	20715E  	JSR $5E71      ; Draw menu
C3/2B0A:	203308  	JSR $0833      ; Queue cursor OAM
C3/2B0D:	A93B    	LDA #$3B       ; Queue: Sustain menu
C3/2B0F:	802F    	BRA $2B40      ; Next: Fade-in

Initialize variables for spell or item usage menu
C3/2B11:	20F735  	JSR $35F7      ; Reset/Stop stuff
C3/2B14:	A901    	LDA #$01       ; CGRAM: Refresh
C3/2B16:	0445    	TSB $45        ; Set NMI flag
C3/2B18:	A904    	LDA #$04       ; Channel: 2
C3/2B1A:	0443    	TSB $43        ; Queue Win1 HDMA
C3/2B1C:	641B    	STZ $1B        ; Null VRAM ptr LB
C3/2B1E:	641C    	STZ $1C        ; Null VRAM ptr HB
C3/2B20:	207670  	JSR $7076      ; Reset BGs' X/Y
C3/2B23:	200E1C  	JSR $1C0E      ; Load portraits
C3/2B26:	A903    	LDA #$03       ; 64x64 at $0000
C3/2B28:	8D0721  	STA $2107      ; Set BG1 map loc
C3/2B2B:	A9C0    	LDA #$C0       ; Channels: 6, 7
C3/2B2D:	1443    	TRB $43        ; Halt HDMA 6+7
C3/2B2F:	A00200  	LDY #$0002     ; Y: 2
C3/2B32:	8437    	STY $37        ; Set BG1 Y-Pos
C3/2B34:	203330  	JSR $3033      ; Preload nav data
C3/2B37:	A900    	LDA #$00       ; Min slot: 0
C3/2B39:	A05B30  	LDY #$305B     ; C3/305B
C3/2B3C:	20DE11  	JSR $11DE      ; Queue D-Pad fn
C3/2B3F:	60      	RTS

Set queued menu command, trigger fade-in
C3/2B40:	8527    	STA $27        ; Set queued cmd
C3/2B42:	A901    	LDA #$01       ; C3/1DE4
C3/2B44:	8526    	STA $26        ; Next: Fade-in
C3/2B46:	4C0936  	JMP $3609      ; BRT:1 + NMI

3B: Handle single-target spell
C3/2B49:	A508    	LDA $08        ; No-autofire keys
C3/2B4B:	8910    	BIT #$10       ; Pushing R?
C3/2B4D:	D012    	BNE $2B61      ; Branch if so
C3/2B4F:	A508    	LDA $08        ; ...
C3/2B51:	8920    	BIT #$20       ; Pushing L?
C3/2B53:	D00C    	BNE $2B61      ; Branch if so
C3/2B55:	A509    	LDA $09        ; No-autofire keys
C3/2B57:	8901    	BIT #$01       ; Pushing right?
C3/2B59:	D006    	BNE $2B61      ; Branch if so
C3/2B5B:	A509    	LDA $09        ; ...
C3/2B5D:	8902    	BIT #$02       ; Pushing left?
C3/2B5F:	F02D    	BEQ $2B8E      ; Branch if not
C3/2B61:	200E0F  	JSR $0F0E      ; Sound: Cursor
C3/2B64:	20AE2D  	JSR $2DAE      ; Spell
C3/2B67:	20C457  	JSR $57C4      ; Compute index
C3/2B6A:	C221    	REP #$21       ; 16-bit A; C-
C3/2B6C:	AD3421  	LDA $2134      ; Load index
C3/2B6F:	690000  	ADC #$0000     ; Add 0...
C3/2B72:	AA      	TAX            ; Index it
C3/2B73:	7B      	TDC            ; Clear A
C3/2B74:	E220    	SEP #$20       ; 8-bit A
C3/2B76:	BFC06AC4	LDA $C46AC0,X  ; Spell properties
C3/2B7A:	2920    	AND #$20       ; Can multi-target?
C3/2B7C:	F010    	BEQ $2B8E      ; Branch if not
C3/2B7E:	A54E    	LDA $4E        ; Cursor row
C3/2B80:	855F    	STA $5F        ; Save for revert
C3/2B82:	A906    	LDA #$06       ; Main cursor: Off
C3/2B84:	1446    	TRB $46        ; Set menu flag
C3/2B86:	202409  	JSR $0924      ; Create blinkers
C3/2B89:	A93D    	LDA #$3D       ; C3/2E13
C3/2B8B:	8526    	STA $26        ; Next: Target all
C3/2B8D:	60      	RTS

Fork: Handle A
C3/2B8E:	A508    	LDA $08        ; No-autofire keys
C3/2B90:	8980    	BIT #$80       ; Pushing A?
C3/2B92:	F003    	BEQ $2B97      ; Branch if not
C3/2B94:	4CA72B  	JMP $2BA7      ; Handle spell

Fork: Handle B
C3/2B97:	A509    	LDA $09        ; No-autofire keys
C3/2B99:	8980    	BIT #$80       ; Pushing B?
C3/2B9B:	F009    	BEQ $2BA6      ; Exit if not
C3/2B9D:	20140F  	JSR $0F14      ; Sound: Cursor
C3/2BA0:	A93C    	LDA #$3C       ; C3/2DB7
C3/2BA2:	8527    	STA $27        ; Queue Magic menu
C3/2BA4:	6426    	STZ $26        ; Next: Fade-out
C3/2BA6:	60      	RTS

Handle spell usage on single target
C3/2BA7:	649C    	STZ $9C        ; Halve HP gain: N
C3/2BA9:	20672D  	JSR $2D67      ; Get LV, Mag.Pwr
C3/2BAC:	20A62D  	JSR $2DA6      ; Target's address
C3/2BAF:	20AF2C  	JSR $2CAF      ; Valid target?
C3/2BB2:	9019    	BCC $2BCD      ; Fail if not
C3/2BB4:	20852D  	JSR $2D85      ; Lower caster's MP
C3/2BB7:	20500F  	JSR $0F50      ; Play heal sound
C3/2BBA:	20A62D  	JSR $2DA6      ; Target's address
C3/2BBD:	B91400  	LDA $0014,Y    ; Status LB
C3/2BC0:	85F8    	STA $F8        ; Set as target's
C3/2BC2:	B91500  	LDA $0015,Y    ; Status HB
C3/2BC5:	85FB    	STA $FB        ; Set as target's
C3/2BC7:	20D42B  	JSR $2BD4      ; Adjust HP, status
C3/2BCA:	4C792C  	JMP $2C79      ; Redo GFX, test MP

Fork: Invalid target
C3/2BCD:	202B0F  	JSR $0F2B      ; Play buzzer
C3/2BD0:	20F830  	JSR $30F8      ; Pixelate screen
C3/2BD3:	60      	RTS

Adjust spell target's HP and status
C3/2BD4:	B90B00  	LDA $000B,Y    ; Max HP LB
C3/2BD7:	8DB211  	STA $11B2      ; Set target's
C3/2BDA:	B90C00  	LDA $000C,Y    ; Max HP HB
C3/2BDD:	8DB311  	STA $11B3      ; Set target's
C3/2BE0:	5A      	PHY            ; Save index
C3/2BE1:	20AE2D  	JSR $2DAE      ; Spell number
C3/2BE4:	A600    	LDX $00        ; Mode: Magic
C3/2BE6:	220900C2	JSL $C20009    ; Get gain/status
C3/2BEA:	7A      	PLY            ; Actor's address
C3/2BEB:	A59C    	LDA $9C        ; One target?
C3/2BED:	F008    	BEQ $2BF7      ; Branch if so
C3/2BEF:	C221    	REP #$21       ; 16-bit A; C-
C3/2BF1:	ADB011  	LDA $11B0      ; HP gain
C3/2BF4:	4A      	LSR A          ; Halve it
C3/2BF5:	8005    	BRA $2BFC      ; Skip 2 lines
C3/2BF7:	C221    	REP #$21       ; 16-bit A; C-
C3/2BF9:	ADB011  	LDA $11B0      ; HP gain
C3/2BFC:	790900  	ADC $0009,Y    ; Add actor HP
C3/2BFF:	990900  	STA $0009,Y    ; Set actor HP
C3/2C02:	E220    	SEP #$20       ; 8-bit A
C3/2C04:	20352C  	JSR $2C35      ; Enforce max
C3/2C07:	A5FC    	LDA $FC        ; Status LB
C3/2C09:	991400  	STA $0014,Y    ; Set actor's
C3/2C0C:	A5FF    	LDA $FF        ; Status HB
C3/2C0E:	991500  	STA $0015,Y    ; Set actor's
C3/2C11:	A59C    	LDA $9C        ; One target?
C3/2C13:	D01F    	BNE $2C34      ; Exit if not
C3/2C15:	7B      	TDC            ; Clear A
C3/2C16:	A54B    	LDA $4B        ; Cursor slot
C3/2C18:	AA      	TAX            ; Index it
C3/2C19:	B569    	LDA $69,X      ; Actor's address
C3/2C1B:	220600C2	JSL $C20006    ; Get gear data
C3/2C1F:	7B      	TDC            ; Clear A
C3/2C20:	A54B    	LDA $4B        ; Cursor slot
C3/2C22:	0A      	ASL A          ; Double it
C3/2C23:	AA      	TAX            ; Index it
C3/2C24:	B46D    	LDY $6D,X      ; Actor's address
C3/2C26:	8467    	STY $67        ; Memorize it
C3/2C28:	ADD211  	LDA $11D2      ; Immunities
C3/2C2B:	209599  	JSR $9995      ; Deny ailments
C3/2C2E:	ADD411  	LDA $11D4      ; Auto status
C3/2C31:	4CA499  	JMP $99A4      ; Handle Float
C3/2C34:	60      	RTS

Keep HP from exceeding max HP, clear Carry if lower
C3/2C35:	B90B00  	LDA $000B,Y    ; Max HP LB
C3/2C38:	85F3    	STA $F3        ; Memorize it
C3/2C3A:	B90C00  	LDA $000C,Y    ; Max HP HB
C3/2C3D:	85F4    	STA $F4        ; Memorize it
C3/2C3F:	20D00D  	JSR $0DD0      ; Add gear bonus
C3/2C42:	20FD0D  	JSR $0DFD      ; Cap at 9999
C3/2C45:	C220    	REP #$20       ; 16-bit A
C3/2C47:	B90900  	LDA $0009,Y    ; Current HP
C3/2C4A:	C5F3    	CMP $F3        ; Under max?
C3/2C4C:	9006    	BCC $2C54      ; Exit if so
C3/2C4E:	A5F3    	LDA $F3        ; Max HP
C3/2C50:	990900  	STA $0009,Y    ; Set HP
C3/2C53:	38      	SEC            ; ...
C3/2C54:	E220    	SEP #$20       ; 8-bit A
C3/2C56:	60      	RTS

Keep MP from exceeding max MP, clear Carry if lower
C3/2C57:	B90F00  	LDA $000F,Y    ; Max MP LB
C3/2C5A:	85F3    	STA $F3        ; Memorize it
C3/2C5C:	B91000  	LDA $0010,Y    ; Max MP HB
C3/2C5F:	85F4    	STA $F4        ; Memorize it
C3/2C61:	20D00D  	JSR $0DD0      ; Add gear bonus
C3/2C64:	200A0E  	JSR $0E0A      ; Cap at 999
C3/2C67:	C220    	REP #$20       ; 16-bit A
C3/2C69:	B90D00  	LDA $000D,Y    ; Current MP
C3/2C6C:	C5F3    	CMP $F3        ; Under max?
C3/2C6E:	9006    	BCC $2C76      ; Exit if so
C3/2C70:	A5F3    	LDA $F3        ; Max MP
C3/2C72:	990D00  	STA $000D,Y    ; Set MP
C3/2C75:	38      	SEC            ; ...
C3/2C76:	E220    	SEP #$20       ; 8-bit A
C3/2C78:	60      	RTS

Redraw party after spell usage, exit menu if short on MP
C3/2C79:	209C2C  	JSR $2C9C      ; Redraw party
C3/2C7C:	207A2D  	JSR $2D7A      ; Check caster gear
C3/2C7F:	209E2D  	JSR $2D9E      ; Caster's address
C3/2C82:	20AE2D  	JSR $2DAE      ; Spell used
C3/2C85:	20DC57  	JSR $57DC      ; Define cost
C3/2C88:	86E7    	STX $E7        ; Memorize it
C3/2C8A:	BE0D00  	LDX $000D,Y    ; Caster's MP
C3/2C8D:	E4E7    	CPX $E7        ; Can recast?
C3/2C8F:	B00A    	BCS $2C9B      ; Exit if so
C3/2C91:	A902    	LDA #$02       ; Main cursor: On
C3/2C93:	8546    	STA $46        ; Bar/Blinker: Off
C3/2C95:	A93C    	LDA #$3C       ; C3/2DB7
C3/2C97:	8527    	STA $27        ; Queue Magic menu
C3/2C99:	6426    	STZ $26        ; Next: Fade-out
C3/2C9B:	60      	RTS

Redraw party after spell or item usage
C3/2C9C:	A54B    	LDA $4B        ; Cursor slot, 0 if MT
C3/2C9E:	859C    	STA $9C        ; Set portrait slot
C3/2CA0:	206125  	JSR $2561      ; Clear icons/portraits
C3/2CA3:	20A971  	JSR $71A9      ; Clear names, stats
C3/2CA6:	202E32  	JSR $322E      ; Redo stats/icons/faces
C3/2CA9:	209D73  	JSR $739D      ; Load portrait colors
C3/2CAC:	4C5376  	JMP $7653      ; Queue portrait upload

Establish whether spell target is valid
C3/2CAF:	B91400  	LDA $0014,Y    ; Status
C3/2CB2:	2980    	AND #$80       ; Wound?
C3/2CB4:	D025    	BNE $2CDB      ; Branch if so
C3/2CB6:	20AE2D  	JSR $2DAE      ; Spell
C3/2CB9:	C92D    	CMP #$2D       ; Cure?
C3/2CBB:	F054    	BEQ $2D11      ; Branch if so
C3/2CBD:	C92E    	CMP #$2E       ; Cure 2?
C3/2CBF:	F050    	BEQ $2D11      ; Branch if so
C3/2CC1:	C92F    	CMP #$2F       ; Cure 3?
C3/2CC3:	F04C    	BEQ $2D11      ; Branch if so
C3/2CC5:	C932    	CMP #$32       ; Antdot?
C3/2CC7:	F03F    	BEQ $2D08      ; Branch if so
C3/2CC9:	C933    	CMP #$33       ; Remedy?
C3/2CCB:	F032    	BEQ $2CFF      ; Branch if so
C3/2CCD:	C922    	CMP #$22       ; Float?
C3/2CCF:	F017    	BEQ $2CE8      ; Branch if so
C3/2CD1:	C923    	CMP #$23       ; Imp?
C3/2CD3:	F04A    	BEQ $2D1F      ; Succeed if so
C3/2CD5:	C92C    	CMP #$2C       ; Dispel?
C3/2CD7:	F018    	BEQ $2CF1      ; Branch if so
C3/2CD9:	8042    	BRA $2D1D      ; Make spell fail

Fork: Wound
C3/2CDB:	20AE2D  	JSR $2DAE      ; Spell
C3/2CDE:	C930    	CMP #$30       ; Life?
C3/2CE0:	F03D    	BEQ $2D1F      ; Succeed if so
C3/2CE2:	C931    	CMP #$31       ; Life 2?
C3/2CE4:	F039    	BEQ $2D1F      ; Succeed if so
C3/2CE6:	8035    	BRA $2D1D      ; Make spell fail

Fork: Float
C3/2CE8:	B91500  	LDA $0015,Y    ; Status
C3/2CEB:	2980    	AND #$80       ; Float?
C3/2CED:	D02E    	BNE $2D1D      ; Fail if so
C3/2CEF:	802E    	BRA $2D1F      ; Make spell work

Fork: Dispel
C3/2CF1:	B91400  	LDA $0014,Y    ; Status LB
C3/2CF4:	297F    	AND #$7F       ; Ignore Wound...
C3/2CF6:	191500  	ORA $0015,Y    ; Add high byte
C3/2CF9:	2990    	AND #$90       ; Clear or Float?
C3/2CFB:	F020    	BEQ $2D1D      ; Fail if neither
C3/2CFD:	8020    	BRA $2D1F      ; Make spell work

Fork: Remedy
C3/2CFF:	B91400  	LDA $0014,Y    ; Dark? Poison?
C3/2D02:	2945    	AND #$45       ; Or Petrify?
C3/2D04:	F017    	BEQ $2D1D      ; Fail if none
C3/2D06:	8017    	BRA $2D1F      ; Make spell work

Fork: Antdot
C3/2D08:	B91400  	LDA $0014,Y    ; Status
C3/2D0B:	2904    	AND #$04       ; Poison?
C3/2D0D:	F00E    	BEQ $2D1D      ; Fail if not
C3/2D0F:	800E    	BRA $2D1F      ; Make spell work

Fork: Cure spells
C3/2D11:	B91400  	LDA $0014,Y    ; Zombie? KO?
C3/2D14:	29C2    	AND #$C2       ; Or Petrify?
C3/2D16:	D005    	BNE $2D1D      ; Fail if any
C3/2D18:	20352C  	JSR $2C35      ; At full HP?
C3/2D1B:	9002    	BCC $2D1F      ; Succeed if not
C3/2D1D:	18      	CLC            ; Make spell fail
C3/2D1E:	60      	RTS            ; Exit
C3/2D1F:	38      	SEC            ; Make spell work
C3/2D20:	60      	RTS

Handle spell usage on party
C3/2D21:	64AF    	STZ $AF        ; Valid target: N
C3/2D23:	A901    	LDA #$01       ; Half gain, etc.
C3/2D25:	859C    	STA $9C        ; Set heal mode
C3/2D27:	20672D  	JSR $2D67      ; Get LV, Mag.Pwr
C3/2D2A:	7B      	TDC            ; Member: 1st
C3/2D2B:	48      	PHA            ; Save member
C3/2D2C:	0A      	ASL A          ; Double it
C3/2D2D:	AA      	TAX            ; Index it
C3/2D2E:	B46D    	LDY $6D,X      ; Actor's address
C3/2D30:	F021    	BEQ $2D53      ; Skip if nobody
C3/2D32:	20AF2C  	JSR $2CAF      ; Valid target?
C3/2D35:	901C    	BCC $2D53      ; Skip if not
C3/2D37:	B91400  	LDA $0014,Y    ; Status LB
C3/2D3A:	85F8    	STA $F8        ; Set target's
C3/2D3C:	B91500  	LDA $0015,Y    ; Status HB
C3/2D3F:	85FB    	STA $FB        ; Set target's
C3/2D41:	20D42B  	JSR $2BD4      ; Adjust HP, status
C3/2D44:	20672D  	JSR $2D67      ; Get LV, Mag.Pwr
C3/2D47:	A5AF    	LDA $AF        ; 1st valid target?
C3/2D49:	D008    	BNE $2D53      ; Branch if not
C3/2D4B:	20500F  	JSR $0F50      ; Play heal sound
C3/2D4E:	20852D  	JSR $2D85      ; Lower caster's MP
C3/2D51:	E6AF    	INC $AF        ; Valid target: Y
C3/2D53:	7B      	TDC            ; Clear A
C3/2D54:	68      	PLA            ; Member slot
C3/2D55:	1A      	INC A          ; Member slot +1
C3/2D56:	C904    	CMP #$04       ; Done all 4?
C3/2D58:	D0D1    	BNE $2D2B      ; Loop if not
C3/2D5A:	A5AF    	LDA $AF        ; Is any valid?
C3/2D5C:	D006    	BNE $2D64      ; Branch if so
C3/2D5E:	202B0F  	JSR $0F2B      ; Play buzzer
C3/2D61:	20F830  	JSR $30F8      ; Pixelate screen
C3/2D64:	4C792C  	JMP $2C79      ; Redo GFX, test MP

Load caster's Mag.Pwr and level (for C2/0009)
C3/2D67:	207A2D  	JSR $2D7A      ; Define stats
C3/2D6A:	ADA011  	LDA $11A0      ; Mag.Pwr
C3/2D6D:	8DAE11  	STA $11AE      ; Memorize it
C3/2D70:	209E2D  	JSR $2D9E      ; Actor's address
C3/2D73:	B90800  	LDA $0008,Y    ; Level
C3/2D76:	8DAF11  	STA $11AF      ; Memorize it
C3/2D79:	60      	RTS

Load member's stats and properties with gear
C3/2D7A:	7B      	TDC            ; Clear A
C3/2D7B:	A528    	LDA $28        ; Member slot
C3/2D7D:	AA      	TAX            ; Index it
C3/2D7E:	B569    	LDA $69,X      ; Actor
C3/2D80:	220600C2	JSL $C20006    ; Load data
C3/2D84:	60      	RTS

Decrease caster's MP
C3/2D85:	20AE2D  	JSR $2DAE      ; Spell
C3/2D88:	20DC57  	JSR $57DC      ; Define cost
C3/2D8B:	86E7    	STX $E7        ; Memorize it
C3/2D8D:	209E2D  	JSR $2D9E      ; Define Y
C3/2D90:	C220    	REP #$20       ; 16-bit A
C3/2D92:	B90D00  	LDA $000D,Y    ; Actor's MP
C3/2D95:	38      	SEC            ; Prepare SBC
C3/2D96:	E5E7    	SBC $E7        ; Subtract cost
C3/2D98:	990D00  	STA $000D,Y    ; Save changes
C3/2D9B:	E220    	SEP #$20       ; 8-bit A
C3/2D9D:	60      	RTS

Get caster's SRAM block address
C3/2D9E:	7B      	TDC            ; Clear A
C3/2D9F:	A528    	LDA $28        ; Member slot
C3/2DA1:	0A      	ASL A          ; Double it
C3/2DA2:	AA      	TAX            ; Index it
C3/2DA3:	B46D    	LDY $6D,X      ; SRAM address
C3/2DA5:	60      	RTS

Get target's SRAM block address
C3/2DA6:	7B      	TDC            ; Clear A
C3/2DA7:	A54B    	LDA $4B        ; Cursor slot
C3/2DA9:	0A      	ASL A          ; Double it
C3/2DAA:	AA      	TAX            ; Index it
C3/2DAB:	B46D    	LDY $6D,X      ; SRAM address
C3/2DAD:	60      	RTS

Get selected spell
C3/2DAE:	7B      	TDC            ; Clear A
C3/2DAF:	A599    	LDA $99        ; Spell slot
C3/2DB1:	AA      	TAX            ; Index it
C3/2DB2:	BF899D7E	LDA $7E9D89,X  ; Spell
C3/2DB6:	60      	RTS

3C: Return to Magic menu
C3/2DB7:	20F735  	JSR $35F7      ; Reset/Stop stuff
C3/2DBA:	209C71  	JSR $719C      ; Set Win1 bounds
C3/2DBD:	A942    	LDA #$42       ; Allow back row
C3/2DBF:	1445    	TRB $45        ; And cursor memory
C3/2DC1:	644A    	STZ $4A        ; List scroll: 0
C3/2DC3:	6449    	STZ $49        ; Top BG1 WR row: 1
C3/2DC5:	208254  	JSR $5482      ; Set to shift text
C3/2DC8:	203D53  	JSR $533D      ; Draw menu, etc.
C3/2DCB:	203308  	JSR $0833      ; Queue cursor OAM
C3/2DCE:	209021  	JSR $2190      ; Create scrollbar
C3/2DD1:	204552  	JSR $5245      ; Load navig data
C3/2DD4:	A58E    	LDA $8E        ; Old cursor column
C3/2DD6:	854D    	STA $4D        ; Set onscreen col
C3/2DD8:	A48E    	LDY $8E        ; Old cursor loc
C3/2DDA:	844F    	STY $4F        ; Set as current
C3/2DDC:	A590    	LDA $90        ; Old scroll pos
C3/2DDE:	854A    	STA $4A        ; Set as current
C3/2DE0:	A54A    	LDA $4A        ; ...
C3/2DE2:	85E0    	STA $E0        ; Memorize it...
C3/2DE4:	A550    	LDA $50        ; List row
C3/2DE6:	38      	SEC            ; Prepare SBC
C3/2DE7:	E5E0    	SBC $E0        ; Sub scroll pos
C3/2DE9:	854E    	STA $4E        ; Set cursor row
C3/2DEB:	204E52  	JSR $524E      ; Relocate cursor
C3/2DEE:	20B821  	JSR $21B8      ; Draw spells, etc.
C3/2DF1:	209558  	JSR $5895      ; Draw MP cost
C3/2DF4:	20D90E  	JSR $0ED9      ; Upload BG3 A+B
C3/2DF7:	20D313  	JSR $13D3      ; Refresh screen
C3/2DFA:	A400    	LDY $00        ; X: 0
C3/2DFC:	8435    	STY $35        ; Set BG1 X-Pos
C3/2DFE:	20FF1B  	JSR $1BFF      ; Queue desc anim
C3/2E01:	A910    	LDA #$10       ; Reset/Stop desc
C3/2E03:	0445    	TSB $45        ; Set menu flag
C3/2E05:	20680F  	JSR $0F68      ; Queue lists upload
C3/2E08:	A91A    	LDA #$1A       ; C3/2855
C3/2E0A:	8527    	STA $27        ; Queue Magic menu
C3/2E0C:	A901    	LDA #$01       ; C3/1DE4
C3/2E0E:	8526    	STA $26        ; Next: Fade-in
C3/2E10:	4C0936  	JMP $3609      ; BRT:1 + NMI

3D: Handle multitarget spell
C3/2E13:	A508    	LDA $08        ; No-autofire keys
C3/2E15:	8910    	BIT #$10       ; Pushing R?
C3/2E17:	D012    	BNE $2E2B      ; Branch if so
C3/2E19:	A508    	LDA $08        ; ...
C3/2E1B:	8920    	BIT #$20       ; Pushing L?
C3/2E1D:	D00C    	BNE $2E2B      ; Branch if so
C3/2E1F:	A509    	LDA $09        ; No-autofire keys
C3/2E21:	8901    	BIT #$01       ; Pushing right?
C3/2E23:	D006    	BNE $2E2B      ; Branch if so
C3/2E25:	A509    	LDA $09        ; ...
C3/2E27:	8902    	BIT #$02       ; Pushing left?
C3/2E29:	F00B    	BEQ $2E36      ; Branch if not
C3/2E2B:	200E0F  	JSR $0F0E      ; Sound: Cursor
C3/2E2E:	20522E  	JSR $2E52      ; Swap cursors
C3/2E31:	A93B    	LDA #$3B       ; C3/2B49
C3/2E33:	8526    	STA $26        ; Next: One target
C3/2E35:	60      	RTS

Fork: Handle A
C3/2E36:	A508    	LDA $08        ; No-autofire keys
C3/2E38:	8980    	BIT #$80       ; Pushing A?
C3/2E3A:	F003    	BEQ $2E3F      ; Branch if not
C3/2E3C:	4C212D  	JMP $2D21      ; Handle spell

Fork: Handle B
C3/2E3F:	A509    	LDA $09        ; No-autofire keys
C3/2E41:	8980    	BIT #$80       ; Pushing B?
C3/2E43:	F00C    	BEQ $2E51      ; Exit if not
C3/2E45:	20140F  	JSR $0F14      ; Sound: Cursor
C3/2E48:	20522E  	JSR $2E52      ; Swap cursors
C3/2E4B:	A93C    	LDA #$3C       ; C3/2DB7
C3/2E4D:	8527    	STA $27        ; Queue Magic menu
C3/2E4F:	6426    	STZ $26        ; Next: Fade-out
C3/2E51:	60      	RTS

Revert to a single target for spell
C3/2E52:	203330  	JSR $3033      ; Preload nav data
C3/2E55:	203308  	JSR $0833      ; Queue cursor OAM
C3/2E58:	A900    	LDA #$00       ; Min slot: 0
C3/2E5A:	A05B30  	LDY #$305B     ; C3/305B
C3/2E5D:	20DE11  	JSR $11DE      ; Queue D-Pad fn
C3/2E60:	201B12  	JSR $121B      ; Run anim queue
C3/2E63:	A55F    	LDA $5F        ; Old cursor row
C3/2E65:	854E    	STA $4E        ; Set as current
C3/2E67:	A908    	LDA #$08       ; Blinkers: Off
C3/2E69:	1446    	TRB $46        ; Set menu flag
C3/2E6B:	60      	RTS

Swap actor info for switched members
C3/2E6C:	7B      	TDC            ; Clear A
C3/2E6D:	A528    	LDA $28        ; Chosen slot A
C3/2E6F:	AA      	TAX            ; Index it
C3/2E70:	A54B    	LDA $4B        ; Chosen slot B
C3/2E72:	A8      	TAY            ; Index it
C3/2E73:	B575    	LDA $75,X      ; A's party info
C3/2E75:	85E0    	STA $E0        ; Memorize it
C3/2E77:	B97500  	LDA $0075,Y    ; B's party info
C3/2E7A:	9575    	STA $75,X      ; Set as A's
C3/2E7C:	A5E0    	LDA $E0        ; A's party info
C3/2E7E:	997500  	STA $0075,Y    ; Set as B's
C3/2E81:	B569    	LDA $69,X      ; A's actor ID
C3/2E83:	85E0    	STA $E0        ; Memorize it
C3/2E85:	B96900  	LDA $0069,Y    ; B's actor ID
C3/2E88:	9569    	STA $69,X      ; Set as A's
C3/2E8A:	A5E0    	LDA $E0        ; A's actor ID
C3/2E8C:	996900  	STA $0069,Y    ; Set as B's
C3/2E8F:	7B      	TDC            ; Clear A
C3/2E90:	A528    	LDA $28        ; Chosen slot A
C3/2E92:	0A      	ASL A          ; Double it
C3/2E93:	AA      	TAX            ; Index it
C3/2E94:	A54B    	LDA $4B        ; Chosen slot B
C3/2E96:	0A      	ASL A          ; Double it
C3/2E97:	A8      	TAY            ; Index it
C3/2E98:	C220    	REP #$20       ; 16-bit A
C3/2E9A:	B56D    	LDA $6D,X      ; A's data adr
C3/2E9C:	85E7    	STA $E7        ; Memorize it
C3/2E9E:	B96D00  	LDA $006D,Y    ; B's data adr
C3/2EA1:	956D    	STA $6D,X      ; Set as A's
C3/2EA3:	A5E7    	LDA $E7        ; A's data adr
C3/2EA5:	996D00  	STA $006D,Y    ; Set as B's
C3/2EA8:	E220    	SEP #$20       ; 8-bit A
C3/2EAA:	60      	RTS

Toggle member's row, set to shift portrait
C3/2EAB:	7B      	TDC            ; Clear A
C3/2EAC:	A528    	LDA $28        ; Member slot
C3/2EAE:	AA      	TAX            ; Index it
C3/2EAF:	B575    	LDA $75,X      ; Party info
C3/2EB1:	85E0    	STA $E0        ; Memorize it
C3/2EB3:	B560    	LDA $60,X      ; Queue index
C3/2EB5:	AA      	TAX            ; Index it
C3/2EB6:	A5E0    	LDA $E0        ; Party info
C3/2EB8:	8920    	BIT #$20       ; Front row?
C3/2EBA:	F008    	BEQ $2EC4      ; Branch if so
C3/2EBC:	A920    	LDA #$20       ; Row: Front
C3/2EBE:	14E0    	TRB $E0        ; Add to info
C3/2EC0:	A903    	LDA #$03       ; Shift: Right
C3/2EC2:	8006    	BRA $2ECA      ; Skip 3 lines
C3/2EC4:	A920    	LDA #$20       ; Row: Back
C3/2EC6:	04E0    	TSB $E0        ; Add to info
C3/2EC8:	A902    	LDA #$02       ; Shift: Left
C3/2ECA:	9F49367E	STA $7E3649,X  ; Set anim mode
C3/2ECE:	7B      	TDC            ; ...
C3/2ECF:	A528    	LDA $28        ; Member slot
C3/2ED1:	AA      	TAX            ; Index it
C3/2ED2:	A5E0    	LDA $E0        ; Party info
C3/2ED4:	9575    	STA $75,X      ; Set member's
C3/2ED6:	60      	RTS

Set to delete all portraits
C3/2ED7:	7B      	TDC            ; Clear A
C3/2ED8:	A560    	LDA $60        ; Queue index A
C3/2EDA:	AA      	TAX            ; Index it
C3/2EDB:	A9FF    	LDA #$FF       ; Null value
C3/2EDD:	9FC9357E	STA $7E35C9,X  ; Face A: Off
C3/2EE1:	A561    	LDA $61        ; Queue index B
C3/2EE3:	AA      	TAX            ; Index it
C3/2EE4:	A9FF    	LDA #$FF       ; Null value
C3/2EE6:	9FC9357E	STA $7E35C9,X  ; Face B: Off
C3/2EEA:	A562    	LDA $62        ; Queue index C
C3/2EEC:	AA      	TAX            ; Index it
C3/2EED:	A9FF    	LDA #$FF       ; Null value
C3/2EEF:	9FC9357E	STA $7E35C9,X  ; Face C: Off
C3/2EF3:	A563    	LDA $63        ; Queue index D
C3/2EF5:	AA      	TAX            ; Index it
C3/2EF6:	A9FF    	LDA #$FF       ; Null value
C3/2EF8:	9FC9357E	STA $7E35C9,X  ; Face D: Off
C3/2EFC:	60      	RTS

Handle selection in main menu list
C3/2EFD:	7B      	TDC            ; Clear A
C3/2EFE:	A54B    	LDA $4B        ; Chosen menu
C3/2F00:	8525    	STA $25        ; Set submenu
C3/2F02:	0A      	ASL A          ; Double it
C3/2F03:	AA      	TAX            ; Index it
C3/2F04:	7C072F  	JMP ($2F07,X)  ; Handle choice

Jump table for the above
C3/2F07:	212F    	; Item
C3/2F09:	2B2F    	; Skills
C3/2F0B:	2B2F    	; Equip
C3/2F0D:	2B2F    	; Relic
C3/2F0F:	2B2F    	; Status
C3/2F11:	152F    	; Config
C3/2F13:	452F    	; Save

Invoke Config menu
C3/2F15:	201D0F  	JSR $0F1D      ; Sound: Click
C3/2F18:	645F    	STZ $5F        ; Cursor: Bat.Mode
C3/2F1A:	6426    	STZ $26        ; Next: Fade-out
C3/2F1C:	A90D    	LDA #$0D       ; C3/1CE3
C3/2F1E:	8527    	STA $27        ; Queue Config
C3/2F20:	60      	RTS

Invoke Item menu
C3/2F21:	201D0F  	JSR $0F1D      ; Sound: Click
C3/2F24:	6426    	STZ $26        ; Next: Fade-out
C3/2F26:	A907    	LDA #$07       ; C3/1B3C
C3/2F28:	8527    	STA $27        ; Queue Item menu
C3/2F2A:	60      	RTS

Initialize portrait targeting with main menu command
C3/2F2B:	201D0F  	JSR $0F1D      ; Sound: Click
C3/2F2E:	A902    	LDA #$02       ; List cursor: Off
C3/2F30:	1446    	TRB $46        ; Set menu flag
C3/2F32:	203330  	JSR $3033      ; Preload nav data
C3/2F35:	A900    	LDA #$00       ; Min slot: 0
C3/2F37:	A05B30  	LDY #$305B     ; C3/305B
C3/2F3A:	20DE11  	JSR $11DE      ; Queue D-Pad fn
C3/2F3D:	20A12F  	JSR $2FA1      ; Create blinker
C3/2F40:	A906    	LDA #$06       ; C3/1E4E
C3/2F42:	8526    	STA $26        ; Next: Targeting
C3/2F44:	60      	RTS

Invoke Save menu if allowed
C3/2F45:	AD0102  	LDA $0201      ; Can save here?
C3/2F48:	1010    	BPL $2F5A      ; Fail if not
C3/2F4A:	201D0F  	JSR $0F1D      ; Sound: Click
C3/2F4D:	6426    	STZ $26        ; Next: Fade-out
C3/2F4F:	A913    	LDA #$13       ; C3/1D06
C3/2F51:	8527    	STA $27        ; Queue Save menu
C3/2F53:	859E    	STA $9E        ; Set root menu cmd
C3/2F55:	A904    	LDA #$04       ; C3/1AF0
C3/2F57:	859F    	STA $9F        ; Set main menu cmd
C3/2F59:	60      	RTS            ; Exit
C3/2F5A:	202B0F  	JSR $0F2B      ; Play buzzer
C3/2F5D:	20F830  	JSR $30F8      ; Pixelate screen
C3/2F60:	60      	RTS

Initiate shifting to Order menu
C3/2F61:	A902    	LDA #$02       ; List cursor: Off
C3/2F63:	1446    	TRB $46        ; Set menu flag
C3/2F65:	203330  	JSR $3033      ; Preload nav data
C3/2F68:	A900    	LDA #$00       ; Min slot: 0
C3/2F6A:	A05B30  	LDY #$305B     ; C3/305B
C3/2F6D:	20DE11  	JSR $11DE      ; Queue D-Pad fn
C3/2F70:	A906    	LDA #$06       ; Frames: 6
C3/2F72:	8520    	STA $20        ; Set scroll timer
C3/2F74:	A0F4FF  	LDY #$FFF4     ; Speed: -12
C3/2F77:	849C    	STY $9C        ; Set scroll speed
C3/2F79:	A905    	LDA #$05       ; Blinker: Off
C3/2F7B:	1446    	TRB $46        ; Order cursor: Off
C3/2F7D:	A90F    	LDA #$0F       ; C3/247F
C3/2F7F:	8527    	STA $27        ; Queue: Choice 1
C3/2F81:	A965    	LDA #$65       ; C3/37AF
C3/2F83:	8526    	STA $26        ; Next: Pan screen
C3/2F85:	60      	RTS

Create blinking cursor for Espers menu
C3/2F86:	A902    	LDA #$02       ; Min slot: 16
C3/2F88:	A05609  	LDY #$0956     ; C3/0956
C3/2F8B:	20DE11  	JSR $11DE      ; Queue OAM fn
C3/2F8E:	C220    	REP #$20       ; 16-bit A
C3/2F90:	A93800  	LDA #$0038     ; X: 56
C3/2F93:	9FCA337E	STA $7E33CA,X  ; Set sprite's
C3/2F97:	A93600  	LDA #$0036     ; Y: 54
C3/2F9A:	9F4A347E	STA $7E344A,X  ; Set sprite's
C3/2F9E:	E220    	SEP #$20       ; 8-bit A
C3/2FA0:	60      	RTS

Create blinking cursor to the right of main cursor
C3/2FA1:	A902    	LDA #$02       ; Min slot: 16
C3/2FA3:	A08208  	LDY #$0882     ; C3/0882
C3/2FA6:	20DE11  	JSR $11DE      ; Queue OAM fn
C3/2FA9:	C220    	REP #$20       ; 16-bit A
C3/2FAB:	A555    	LDA $55        ; Cursor's X
C3/2FAD:	1A      	INC A          ; +1 px right
C3/2FAE:	1A      	INC A          ; +1 px right
C3/2FAF:	9FCA337E	STA $7E33CA,X  ; Set blinker X
C3/2FB3:	A557    	LDA $57        ; Cursor's Y
C3/2FB5:	9F4A347E	STA $7E344A,X  ; Set blinker Y
C3/2FB9:	E220    	SEP #$20       ; 8-bit A
C3/2FBB:	60      	RTS

Create blinking cursor to northeast of main cursor
C3/2FBC:	A901    	LDA #$01       ; Min slot: 8
C3/2FBE:	A08208  	LDY #$0882     ; C3/0882
C3/2FC1:	20DE11  	JSR $11DE      ; Queue OAM fn
C3/2FC4:	C220    	REP #$20       ; 16-bit A
C3/2FC6:	A555    	LDA $55        ; Cursor's X
C3/2FC8:	18      	CLC            ; Prepare ADC
C3/2FC9:	690400  	ADC #$0004     ; +4 px right
C3/2FCC:	9FCA337E	STA $7E33CA,X  ; Set blinker X
C3/2FD0:	A557    	LDA $57        ; Cursor's Y
C3/2FD2:	38      	SEC            ; Prepare SBC
C3/2FD3:	E90400  	SBC #$0004     ; +4 px up
C3/2FD6:	9F4A347E	STA $7E344A,X  ; Set blinker Y
C3/2FDA:	E220    	SEP #$20       ; 8-bit A
C3/2FDC:	60      	RTS

Update cursor position in main menu list
C3/2FDD:	AA      	TAX            ; Index mode
C3/2FDE:	7CE12F  	JMP ($2FE1,X)  ; Handle mode

Jump table for the above
C3/2FE1:	E52F    	; Initialize data
C3/2FE3:	0630    	; Update position

Mode 0: Initialize data
C3/2FE5:	A62D    	LDX $2D        ; Queue index
C3/2FE7:	A902    	LDA #$02       ; Show cursor: Y
C3/2FE9:	0446    	TSB $46        ; Set menu flag
C3/2FEB:	FE4936  	INC $3649,X    ; Mode +1
C3/2FEE:	A02030  	LDY #$3020     ; C3/3020
C3/2FF1:	208106  	JSR $0681      ; Load navig data
C3/2FF4:	AD4E1D  	LDA $1D4E      ; Game options
C3/2FF7:	2940    	AND #$40       ; Cursor memory?
C3/2FF9:	F005    	BEQ $3000      ; Branch if not
C3/2FFB:	AC2B02  	LDY $022B      ; Former position
C3/2FFE:	844D    	STY $4D        ; Set as current
C3/3000:	A02530  	LDY #$3025     ; C3/3025
C3/3003:	20C306  	JSR $06C3      ; Set cursor X/Y

Mode 1: Update position
C3/3006:	A546    	LDA $46        ; Menu flags
C3/3008:	8902    	BIT #$02       ; Delete cursor?
C3/300A:	F012    	BEQ $301E      ; Dequeue if so
C3/300C:	A62D    	LDX $2D        ; Queue index
C3/300E:	20B007  	JSR $07B0      ; Handle D-Pad
C3/3011:	A02530  	LDY #$3025     ; C3/3025
C3/3014:	20C306  	JSR $06C3      ; Set cursor X/Y
C3/3017:	A44D    	LDY $4D        ; Cursor position
C3/3019:	8C2B02  	STY $022B      ; To cursor memory
C3/301C:	38      	SEC            ; Set to requeue
C3/301D:	60      	RTS            ; Exit
C3/301E:	18      	CLC            ; Set to dequeue
C3/301F:	60      	RTS

Navigation data for main menu
C3/3020:	80      	; Wraps vertically
C3/3021:	00      	; Initial column
C3/3022:	00      	; Initial row
C3/3023:	01      	; 1 column
C3/3024:	07      	; 7 rows

Cursor positions for main menu
C3/3025:	B712    	; Item
C3/3027:	B721    	; Skills
C3/3029:	B730    	; Equip
C3/302B:	B73F    	; Relic
C3/302D:	B74E    	; Status
C3/302F:	B75D    	; Config
C3/3031:	B76C    	; Save

Preload nav data for portrait selection, disable empty slots
C3/3033:	204C30  	JSR $304C      ; Load navig data
C3/3036:	7B      	TDC            ; Clear A
C3/3037:	AA      	TAX            ; 1st: Member 1
C3/3038:	A8      	TAY            ; ...
C3/3039:	BD6900  	LDA $0069,X    ; Actor in slot
C3/303C:	1007    	BPL $3045      ; Skip if any
C3/303E:	DA      	PHX            ; Save slot
C3/303F:	8A      	TXA            ; Move it to A
C3/3040:	0A      	ASL A          ; Double it
C3/3041:	AA      	TAX            ; Reindex it
C3/3042:	7485    	STZ $85,X      ; Disable slot
C3/3044:	FA      	PLX            ; Member slot
C3/3045:	E8      	INX            ; Member slot +1
C3/3046:	E00400  	CPX #$0004     ; Done all 4?
C3/3049:	D0EE    	BNE $3039      ; Loop if not
C3/304B:	60      	RTS

Preload navigation data for portrait selection
C3/304C:	A600    	LDX $00        ; Index: 0
C3/304E:	BFDD30C3	LDA $C330DD,X  ; Navig data
C3/3052:	9580    	STA $80,X      ; Save in RAM
C3/3054:	E8      	INX            ; Index +1
C3/3055:	E00D00  	CPX #$000D     ; At C3/30EA?
C3/3058:	D0F4    	BNE $304E      ; Loop if not
C3/305A:	60      	RTS

Update movable cursor's position for portrait selection
C3/305B:	AA      	TAX            ; Index mode
C3/305C:	7C5F30  	JMP ($305F,X)  ; Handle mode

Jump table for the above
C3/305F:	6330    	; Initialize data
C3/3061:	AF30    	; Update position

Mode 0: Initialize data
C3/3063:	A62D    	LDX $2D        ; Queue index
C3/3065:	A914    	LDA #$14       ; Main cursor: On
C3/3067:	0446    	TSB $46        ; Enable D-Pad
C3/3069:	FE4936  	INC $3649,X    ; Mode +1
C3/306C:	209030  	JSR $3090      ; Load navig data
C3/306F:	A545    	LDA $45        ; Menu flags
C3/3071:	8940    	BIT #$40       ; Skip cursor mem?
C3/3073:	D00C    	BNE $3081      ; Branch if so
C3/3075:	AD4E1D  	LDA $1D4E      ; Game options
C3/3078:	2940    	AND #$40       ; Cursor memory?
C3/307A:	F005    	BEQ $3081      ; Branch if not
C3/307C:	AC2D02  	LDY $022D      ; Former position
C3/307F:	844D    	STY $4D        ; Set as current
C3/3081:	20A330  	JSR $30A3      ; Relocate cursor
C3/3084:	A555    	LDA $55        ; On empty slot?
C3/3086:	D006    	BNE $308E      ; Exit if not
C3/3088:	209030  	JSR $3090      ; Target leader
C3/308B:	20A330  	JSR $30A3      ; Relocate cursor
C3/308E:	38      	SEC            ; Set to requeue
C3/308F:	60      	RTS

Load custom nav data for portrait selection, target leader
C3/3090:	A08000  	LDY #$0080     ; ...
C3/3093:	208106  	JSR $0681      ; ...
C3/3096:	A08000  	LDY #$0080     ; 00/0080
C3/3099:	A900    	LDA #$00       ; Bank: 00
C3/309B:	85ED    	STA $ED        ; Set source HB
C3/309D:	208506  	JSR $0685      ; Load navig data
C3/30A0:	4CA106  	JMP $06A1      ; Target leader

Set portrait cursor's slot and base pixel position
C3/30A3:	A08500  	LDY #$0085     ; 00/0085
C3/30A6:	84E7    	STY $E7        ; Set src LBs
C3/30A8:	A900    	LDA #$00       ; Bank: 00
C3/30AA:	85E9    	STA $E9        ; Set src HB
C3/30AC:	4CC606  	JMP $06C6      ; Relocate cursor

Mode 1: Update position
C3/30AF:	A545    	LDA $45        ; Menu flags
C3/30B1:	8940    	BIT #$40       ; Skip cursor mem?
C3/30B3:	D005    	BNE $30BA      ; Branch if so
C3/30B5:	A44D    	LDY $4D        ; Cursor position
C3/30B7:	8C2D02  	STY $022D      ; To cursor memory
C3/30BA:	A546    	LDA $46        ; Menu flags
C3/30BC:	8904    	BIT #$04       ; Delete cursor?
C3/30BE:	F01B    	BEQ $30DB      ; Dequeue if so
C3/30C0:	8910    	BIT #$10       ; Swapping chars?
C3/30C2:	F015    	BEQ $30D9      ; Exit if so
C3/30C4:	A62D    	LDX $2D        ; Queue index
C3/30C6:	20B007  	JSR $07B0      ; Handle D-Pad
C3/30C9:	A08500  	LDY #$0085     ; 00/0085
C3/30CC:	84E7    	STY $E7        ; Set src LBs
C3/30CE:	A900    	LDA #$00       ; Bank: 00
C3/30D0:	85E9    	STA $E9        ; Set src HB
C3/30D2:	20C606  	JSR $06C6      ; Relocate cursor
C3/30D5:	A555    	LDA $55        ; On empty slot?
C3/30D7:	F0ED    	BEQ $30C6      ; Retarget if so
C3/30D9:	38      	SEC            ; Set to requeue
C3/30DA:	60      	RTS            ; Exit
C3/30DB:	18      	CLC            ; Set to dequeue
C3/30DC:	60      	RTS

Navigation data for portrait selection
C3/30DD:	80      	; Wraps vertically
C3/30DE:	00      	; Initial column
C3/30DF:	00      	; Initial row
C3/30E0:	01      	; 1 column
C3/30E1:	04      	; 4 rows

Cursor positions for portrait selection
C3/30E2:	0828    	; Member 1
C3/30E4:	0858    	; Member 2
C3/30E6:	0888    	; Member 3
C3/30E8:	08B8    	; Member 4

Queue menu fade-out
C3/30EA:	7B      	TDC            ; Min slot: 0
C3/30EB:	A03A31  	LDY #$313A     ; C3/313A
C3/30EE:	4CDE11  	JMP $11DE      ; Put in queue

Queue menu fade-in
C3/30F1:	7B      	TDC            ; Min slot: 0
C3/30F2:	A06531  	LDY #$3165     ; C3/3165
C3/30F5:	4CDE11  	JMP $11DE      ; Put in queue

Queue mosaic effect
C3/30F8:	7B      	TDC            ; Min slot: 0
C3/30F9:	A0FF30  	LDY #$30FF     ; C3/30FF
C3/30FC:	4CDE11  	JMP $11DE      ; Put in queue

Process queued mosaic effect
C3/30FF:	AA      	TAX            ; Index mode
C3/3100:	7C0331  	JMP ($3103,X)  ; Handle mode

Jump table for the above
C3/3103:	0731    	; Initialize mosaic
C3/3105:	1431    	; Sustain mosaic

Mode 0: Initialize mosaic
C3/3107:	A62D    	LDX $2D        ; Queue index
C3/3109:	FE4936  	INC $3649,X    ; Mode +1
C3/310C:	9ECA33  	STZ $33CA,X    ; 1st: C3/3132
C3/310F:	A908    	LDA #$08       ; Frames: 8
C3/3111:	9D4933  	STA $3349,X    ; Set timer

Mode 1: Sustain mosaic
C3/3114:	A62D    	LDX $2D        ; Queue index
C3/3116:	BD4933  	LDA $3349,X    ; Timer expired?
C3/3119:	F015    	BEQ $3130      ; Dequeue if so
C3/311B:	7B      	TDC            ; ...
C3/311C:	BDCA33  	LDA $33CA,X    ; Table index
C3/311F:	AA      	TAX            ; Index it
C3/3120:	BF3231C3	LDA $C33132,X  ; Parameters
C3/3124:	85B5    	STA $B5        ; Save in RAM
C3/3126:	A62D    	LDX $2D        ; Queue index
C3/3128:	FECA33  	INC $33CA,X    ; Table index +1
C3/312B:	DE4933  	DEC $3349,X    ; Timer -1
C3/312E:	38      	SEC            ; Set to requeue
C3/312F:	60      	RTS            ; Exit
C3/3130:	18      	CLC            ; Set to dequeue
C3/3131:	60      	RTS

Mosaic parameters
C3/3132:	17      	; Intensity 1 for BG1-BG3
C3/3133:	27      	; Intensity 2 for BG1-BG3
C3/3134:	37      	; Intensity 3 for BG1-BG3
C3/3135:	47      	; Intensity 4 for BG1-BG3
C3/3136:	37      	; Intensity 3 for BG1-BG3
C3/3137:	27      	; Intensity 2 for BG1-BG3
C3/3138:	17      	; Intensity 1 for BG1-BG3
C3/3139:	07      	; Intensity 0 for BG1-BG3

Process queued menu fade-out
C3/313A:	AA      	TAX            ; Index mode
C3/313B:	7C3E31  	JMP ($313E,X)  ; Handle mode

Jump table for the above
C3/313E:	4231    	; Initialize brightness
C3/3140:	4C31    	; Decrease brightness

Mode 0: Initialize brightness
C3/3142:	A62D    	LDX $2D        ; Queue index
C3/3144:	FE4936  	INC $3649,X    ; Mode +1
C3/3147:	A90F    	LDA #$0F       ; BRT: 15 and ON
C3/3149:	9DCA33  	STA $33CA,X    ; Set next BRT

Mode 1: Decrease brightness
C3/314C:	A420    	LDY $20        ; Timer expired?
C3/314E:	F00F    	BEQ $315F      ; Finalize if so
C3/3150:	A62D    	LDX $2D        ; Queue index
C3/3152:	BDCA33  	LDA $33CA,X    ; Next brightness
C3/3155:	8544    	STA $44        ; Set as current
C3/3157:	DECA33  	DEC $33CA,X    ; Next BRT -1
C3/315A:	DECA33  	DEC $33CA,X    ; Next BRT -1
C3/315D:	38      	SEC            ; Set to requeue
C3/315E:	60      	RTS            ; Exit
C3/315F:	A901    	LDA #$01       ; BRT: 1 and ON
C3/3161:	8544    	STA $44        ; Set brightness
C3/3163:	18      	CLC            ; Set to dequeue
C3/3164:	60      	RTS

Process queued menu fade-in
C3/3165:	AA      	TAX            ; Index mode
C3/3166:	7C6931  	JMP ($3169,X)  ; Handle mode

Jump table for the above
C3/3169:	6D31    	; Initialize brightness
C3/316B:	7731    	; Increase brightness

Mode 0: Initialize brightness
C3/316D:	A62D    	LDX $2D        ; Queue index
C3/316F:	FE4936  	INC $3649,X    ; Mode +1
C3/3172:	A901    	LDA #$01       ; BRT: 1 and ON
C3/3174:	9D4A34  	STA $344A,X    ; Set next BRT

Mode 1: Increase brightness
C3/3177:	A420    	LDY $20        ; Timer expired?
C3/3179:	F00F    	BEQ $318A      ; Finalize if so
C3/317B:	A62D    	LDX $2D        ; Queue index
C3/317D:	BD4A34  	LDA $344A,X    ; Next brightness
C3/3180:	8544    	STA $44        ; Set as current
C3/3182:	FE4A34  	INC $344A,X    ; Next BRT +1
C3/3185:	FE4A34  	INC $344A,X    ; Next BRT +1
C3/3188:	38      	SEC            ; Set to requeue
C3/3189:	60      	RTS            ; Exit
C3/318A:	A90F    	LDA #$0F       ; BRT: 15 and ON
C3/318C:	8544    	STA $44        ; Set brightness
C3/318E:	18      	CLC            ; Set to dequeue
C3/318F:	60      	RTS

Draw and upload main menu
C3/3190:	20B940  	JSR $40B9      ; Apply user font
C3/3193:	20BC71  	JSR $71BC      ; Clear BG2 map A
C3/3196:	20C171  	JSR $71C1      ; Clear BG2 map B
C3/3199:	20AD71  	JSR $71AD      ; Clear BG1 map B
C3/319C:	20D571  	JSR $71D5      ; Clear BG3 map B
C3/319F:	A06A32  	LDY #$326A     ; C3/326A
C3/31A2:	20C403  	JSR $03C4      ; Draw Order box A
C3/31A5:	A06E32  	LDY #$326E     ; C3/326E
C3/31A8:	20C403  	JSR $03C4      ; Draw Order box B
C3/31AB:	A06232  	LDY #$3262     ; C3/3262
C3/31AE:	20C403  	JSR $03C4      ; Draw main window
C3/31B1:	A05632  	LDY #$3256     ; C3/3256
C3/31B4:	20C403  	JSR $03C4      ; Draw option box
C3/31B7:	200B32  	JSR $320B      ; Draw stats, etc.
C3/31BA:	200733  	JSR $3307      ; Draw time
C3/31BD:	208E32  	JSR $328E      ; Draw menu list
C3/31C0:	4C3A32  	JMP $323A      ; Upload text maps

Draw and upload save confirmation menu
C3/31C3:	20B940  	JSR $40B9      ; Apply user font
C3/31C6:	201676  	JSR $7616      ; Load portraits
C3/31C9:	209D73  	JSR $739D      ; And their colors
C3/31CC:	204332  	JSR $3243      ; Upload skin
C3/31CF:	A06232  	LDY #$3262     ; C3/3262
C3/31D2:	20C403  	JSR $03C4      ; Draw main window
C3/31D5:	A06632  	LDY #$3266     ; C3/3266
C3/31D8:	20C403  	JSR $03C4      ; Draw Yes/No box
C3/31DB:	200B32  	JSR $320B      ; Draw stats, etc.
C3/31DE:	203033  	JSR $3330      ; Draw time
C3/31E1:	207232  	JSR $3272      ; Draw question
C3/31E4:	4C3A32  	JMP $323A      ; Upload text maps

Draw and upload load confirmation menu
C3/31E7:	20B940  	JSR $40B9      ; Apply user font
C3/31EA:	201676  	JSR $7616      ; Load portraits
C3/31ED:	209D73  	JSR $739D      ; And their colors
C3/31F0:	204332  	JSR $3243      ; Upload skin
C3/31F3:	A06232  	LDY #$3262     ; C3/3262
C3/31F6:	20C403  	JSR $03C4      ; Draw main window
C3/31F9:	A06632  	LDY #$3266     ; C3/3266
C3/31FC:	20C403  	JSR $03C4      ; Draw Yes/No box
C3/31FF:	200B32  	JSR $320B      ; Draw stats, etc.
C3/3202:	203033  	JSR $3330      ; Draw time
C3/3205:	208032  	JSR $3280      ; Draw question
C3/3208:	4C3A32  	JMP $323A      ; Upload text maps

Draw elements shared by main menu and save file submenus
C3/320B:	7B      	TDC            ; Gradient set: 0
C3/320C:	221DCAD4	JSL $D4CA1D    ; Create gradient
C3/3210:	A05A32  	LDY #$325A     ; C3/325A
C3/3213:	20C403  	JSR $03C4      ; Draw time window
C3/3216:	A05E32  	LDY #$325E     ; C3/325E
C3/3219:	20C403  	JSR $03C4      ; Draw steps window
C3/321C:	20BD0E  	JSR $0EBD      ; Upload windows
C3/321F:	202532  	JSR $3225      ; Draw party info
C3/3222:	4CBC32  	JMP $32BC      ; Draw game stats

Draw party info
C3/3225:	20A971  	JSR $71A9      ; Clear BG1 map A
C3/3228:	20D071  	JSR $71D0      ; Clear BG3 map A
C3/322B:	20DA71  	JSR $71DA      ; Clear BG3 map C
C3/322E:	208C33  	JSR $338C      ; Handle member 1
C3/3231:	20D833  	JSR $33D8      ; Handle member 2
C3/3234:	202434  	JSR $3424      ; Handle member 3
C3/3237:	4C7034  	JMP $3470      ; Handle member 4

Upload text tilemaps for menu with portraits
C3/323A:	20930E  	JSR $0E93      ; Upload BG1 A+B
C3/323D:	20D90E  	JSR $0ED9      ; Upload BG3 A+B
C3/3240:	4CE70E  	JMP $0EE7      ; Upload BG3 C+D

Upload skin for viewed save file
C3/3243:	A566    	LDA $66        ; File viewed
C3/3245:	C901    	CMP #$01       ; File 1?
C3/3247:	F007    	BEQ $3250      ; Branch if so
C3/3249:	C902    	CMP #$02       ; File 2?
C3/324B:	F006    	BEQ $3253      ; Branch if so
C3/324D:	4CAD3B  	JMP $3BAD      ; Handle file 3
C3/3250:	4C753B  	JMP $3B75      ; Handle file 1
C3/3253:	4C913B  	JMP $3B91      ; Handle file 2

Window layout for main menu and save file submenus
C3/3256:	B958050D	; 07x15 at $58B9 (Options)
C3/325A:	795C0502	; 07x04 at $5C79 (Time)
C3/325E:	755D0705	; 09x07 at $5D75 (Steps)
C3/3262:	8B581C18	; 30x26 at $588B (Party)
C3/3266:	B558070A	; 09x12 at $58B5 (Yes/No)
C3/326A:	B9600702	; 09x04 at $60B9 (Order; L part)
C3/326E:	85580102	; 03x04 at $5885 (Order; R part)

Draw confirmation text for Save menu
C3/3272:	A920    	LDA #$20       ; Palette 0
C3/3274:	8529    	STA $29        ; Color: User's
C3/3276:	A22D38  	LDX #$382D     ; Text ptrs loc
C3/3279:	A00A00  	LDY #$000A     ; Strings: 5
C3/327C:	204E71  	JSR $714E      ; Draw text
C3/327F:	60      	RTS

Draw confirmation text for Load menu
C3/3280:	A920    	LDA #$20       ; Palette 0
C3/3282:	8529    	STA $29        ; Color: User's
C3/3284:	A22538  	LDX #$3825     ; Text ptrs loc
C3/3287:	A00800  	LDY #$0008     ; Strings: 4
C3/328A:	204E71  	JSR $714E      ; Draw text
C3/328D:	60      	RTS

Draw list of submenus in main menu
C3/328E:	A920    	LDA #$20       ; Palette 0
C3/3290:	8529    	STA $29        ; Color: User's
C3/3292:	A2F137  	LDX #$37F1     ; Text ptrs loc
C3/3295:	A00800  	LDY #$0008     ; Strings: 4
C3/3298:	202C71  	JSR $712C      ; Do Item..Status
C3/329B:	A920    	LDA #$20       ; ...
C3/329D:	8529    	STA $29        ; ...
C3/329F:	A22138  	LDX #$3821     ; Text ptrs loc
C3/32A2:	A00400  	LDY #$0004     ; Strings: 2
C3/32A5:	204E71  	JSR $714E      ; Do Equip/Config
C3/32A8:	AD0102  	LDA $0201      ; Can save here?
C3/32AB:	1004    	BPL $32B1      ; Branch if not
C3/32AD:	A920    	LDA #$20       ; Color: User's
C3/32AF:	8002    	BRA $32B3      ; Skip a line
C3/32B1:	A924    	LDA #$24       ; Color: Gray
C3/32B3:	8529    	STA $29        ; Set palette
C3/32B5:	A0BF38  	LDY #$38BF     ; Text pointer
C3/32B8:	202603  	JSR $0326      ; Draw "Save"
C3/32BB:	60      	RTS

Draw most text in small windows of main menu or save file submenu
C3/32BC:	A920    	LDA #$20       ; Palette 0
C3/32BE:	8529    	STA $29        ; Color: User's
C3/32C0:	A0CC38  	LDY #$38CC     ; Text pointer
C3/32C3:	20F902  	JSR $02F9      ; Draw ":"
C3/32C6:	A92C    	LDA #$2C       ; Palette 3
C3/32C8:	8529    	STA $29        ; Color: Blue
C3/32CA:	A2EB37  	LDX #$37EB     ; Text ptrs loc
C3/32CD:	A00600  	LDY #$0006     ; Strings: 3
C3/32D0:	202C71  	JSR $712C      ; Draw SE titles
C3/32D3:	A0D638  	LDY #$38D6     ; Text pointer
C3/32D6:	202603  	JSR $0326      ; Draw "Gp"
C3/32D9:	206933  	JSR $3369      ; Cap GP
C3/32DC:	A920    	LDA #$20       ; Palette 0
C3/32DE:	8529    	STA $29        ; Color: User's
C3/32E0:	AC6618  	LDY $1866      ; Steps LBs
C3/32E3:	84F1    	STY $F1        ; Memorize them
C3/32E5:	AD6818  	LDA $1868      ; Steps HB
C3/32E8:	85F3    	STA $F3        ; Memorize it
C3/32EA:	200506  	JSR $0605      ; Turn into text
C3/32ED:	A2F77D  	LDX #$7DF7     ; Text position
C3/32F0:	202F05  	JSR $052F      ; Draw step count
C3/32F3:	AC6018  	LDY $1860      ; Gold LBs
C3/32F6:	84F1    	STY $F1        ; Memorize them
C3/32F8:	AD6218  	LDA $1862      ; Gold HB
C3/32FB:	85F3    	STA $F3        ; Memorize it
C3/32FD:	200506  	JSR $0605      ; Turn into text
C3/3300:	A2B77E  	LDX #$7EB7     ; Text position
C3/3303:	202F05  	JSR $052F      ; Draw GP total
C3/3306:	60      	RTS

Draw time in main menu
C3/3307:	AD8811  	LDA $1188      ; Timer 0 flags
C3/330A:	8910    	BIT #$10       ; Override clock?
C3/330C:	F016    	BEQ $3324      ; Branch if not
C3/330E:	AC8911  	LDY $1189      ; Countdown timer
C3/3311:	204D33  	JSR $334D      ; Divide by 60
C3/3314:	204D33  	JSR $334D      ; Divide by 60
C3/3317:	A5E7    	LDA $E7        ; Minutes
C3/3319:	8D6318  	STA $1863      ; Set shown hours
C3/331C:	AD1642  	LDA $4216      ; Seconds
C3/331F:	8D6418  	STA $1864      ; Set shown mins
C3/3322:	800C    	BRA $3330      ; Draw time

Fork: Normal clock
C3/3324:	AC1B02  	LDY $021B      ; Hours, mins
C3/3327:	8C6318  	STY $1863      ; Save in SRAM
C3/332A:	AD1D02  	LDA $021D      ; Seconds
C3/332D:	8D6518  	STA $1865      ; Save in SRAM

Fork: Draw time
C3/3330:	A920    	LDA #$20       ; Palette 0
C3/3332:	8529    	STA $29        ; Color: User's
C3/3334:	AD6318  	LDA $1863      ; Shown hours
C3/3337:	206305  	JSR $0563      ; Turn into text
C3/333A:	A2FB7C  	LDX #$7CFB     ; Text position
C3/333D:	203905  	JSR $0539      ; Draw 2 digits
C3/3340:	AD6418  	LDA $1864      ; Shown minutes
C3/3343:	207C05  	JSR $057C      ; Turn into text
C3/3346:	A2017D  	LDX #$7D01     ; Text position
C3/3349:	203905  	JSR $0539      ; Draw 2 digits
C3/334C:	60      	RTS

Divide countdown timer's value by 60
C3/334D:	8C0442  	STY $4204      ; Set dividend
C3/3350:	A93C    	LDA #$3C       ; 60
C3/3352:	8D0642  	STA $4206      ; Set divisor
C3/3355:	EA      	NOP
C3/3356:	EA      	NOP
C3/3357:	EA      	NOP
C3/3358:	EA      	NOP
C3/3359:	EA      	NOP
C3/335A:	EA      	NOP
C3/335B:	EA      	NOP
C3/335C:	EA      	NOP
C3/335D:	EA      	NOP
C3/335E:	EA      	NOP
C3/335F:	EA      	NOP
C3/3360:	EA      	NOP
C3/3361:	EA      	NOP
C3/3362:	EA      	NOP
C3/3363:	AC1442  	LDY $4214      ; Quotient
C3/3366:	84E7    	STY $E7        ; Memorize it
C3/3368:	60      	RTS

Enforce GP cap
C3/3369:	A97F    	LDA #$7F       ; Cap LB
C3/336B:	CD6018  	CMP $1860      ; C- if < GP LB
C3/336E:	A996    	LDA #$96       ; Cap MB
C3/3370:	ED6118  	SBC $1861      ; Deduct GP w/ C
C3/3373:	A998    	LDA #$98       ; Cap HB
C3/3375:	ED6218  	SBC $1862      ; Deduct GP w/ C
C3/3378:	B00B    	BCS $3385      ; Exit if < 10M
C3/337A:	A07F96  	LDY #$967F     ; Cap LBs
C3/337D:	8C6018  	STY $1860      ; Set gold LBs
C3/3380:	A998    	LDA #$98       ; Cap HB
C3/3382:	8D6218  	STA $1862      ; Set gold HB
C3/3385:	60      	RTS

Hi-fork: Hide portrait
C3/3386:	208D0A  	JSR $0A8D      ; Init portrait
C3/3389:	4CB634  	JMP $34B6      ; Hide portrait

Draw info for member 1
C3/338C:	A569    	LDA $69        ; Nobody here?
C3/338E:	30F6    	BMI $3386      ; Abort if so
C3/3390:	A66D    	LDX $6D        ; Actor's address
C3/3392:	8667    	STX $67        ; Memorize it
C3/3394:	A924    	LDA #$24       ; Palette 1
C3/3396:	8529    	STA $29        ; Color: Blue
C3/3398:	A20938  	LDX #$3809     ; Text ptrs loc
C3/339B:	A00600  	LDY #$0006     ; Strings: 3
C3/339E:	202C71  	JSR $712C      ; Draw "LV/HP/MP"
C3/33A1:	A0E738  	LDY #$38E7     ; Class/KO pos
C3/33A4:	A27815  	LDX #$1578     ; Icon position
C3/33A7:	6448    	STZ $48        ; Anim mode: 0
C3/33A9:	20C234  	JSR $34C2      ; Do class/status
C3/33AC:	A2F937  	LDX #$37F9     ; Text ptrs loc
C3/33AF:	86F1    	STX $F1        ; ...
C3/33B1:	A00400  	LDY #$0004     ; Strings: 2
C3/33B4:	84EF    	STY $EF        ; ...
C3/33B6:	202C71  	JSR $712C      ; Draw both "/"
C3/33B9:	A0D938  	LDY #$38D9     ; Text position
C3/33BC:	206A35  	JSR $356A      ; Draw actor name
C3/33BF:	A2C833  	LDX #$33C8     ; Coords tbl ptr
C3/33C2:	20D70C  	JSR $0CD7      ; Draw LV, HP, MP
C3/33C5:	4C8D0A  	JMP $0A8D      ; Create portrait

Tilemap pointers for stats of member 1
C3/33C8:	A739    	; Level
C3/33CA:	E339    	; HP
C3/33CC:	ED39    	; Max HP
C3/33CE:	233A    	; MP
C3/33D0:	2D3A    	; Max MP

Hi-fork: Hide portrait
C3/33D2:	20B60A  	JSR $0AB6      ; Init portrait
C3/33D5:	4CB634  	JMP $34B6      ; Hide portrait

Draw info for member 2
C3/33D8:	A56A    	LDA $6A        ; Nobody here?
C3/33DA:	30F6    	BMI $33D2      ; Abort if so
C3/33DC:	A66F    	LDX $6F        ; Actor's address
C3/33DE:	8667    	STX $67        ; Memorize it
C3/33E0:	A924    	LDA #$24       ; Palette 1
C3/33E2:	8529    	STA $29        ; Color: Blue
C3/33E4:	A20F38  	LDX #$380F     ; Text ptrs loc
C3/33E7:	A00600  	LDY #$0006     ; Strings: 3
C3/33EA:	202C71  	JSR $712C      ; Draw "LV/HP/MP"
C3/33ED:	A0673A  	LDY #$3A67     ; Class/KO pos
C3/33F0:	A27845  	LDX #$4578     ; Icon position
C3/33F3:	6448    	STZ $48        ; Anim mode: 0
C3/33F5:	20C234  	JSR $34C2      ; Do class/status
C3/33F8:	A2FD37  	LDX #$37FD     ; Text ptrs loc
C3/33FB:	86F1    	STX $F1        ; ...
C3/33FD:	A00400  	LDY #$0004     ; Strings: 2
C3/3400:	84EF    	STY $EF        ; ...
C3/3402:	202C71  	JSR $712C      ; Draw both "/"
C3/3405:	A0593A  	LDY #$3A59     ; Text position
C3/3408:	206A35  	JSR $356A      ; Draw actor name
C3/340B:	A21434  	LDX #$3414     ; Coords tbl ptr
C3/340E:	20D70C  	JSR $0CD7      ; Draw LV, HP, MP
C3/3411:	4CB60A  	JMP $0AB6      ; Create portrait

Tilemap pointers for stats of member 2
C3/3414:	273B    	; Level
C3/3416:	633B    	; HP
C3/3418:	6D3B    	; Max HP
C3/341A:	A33B    	; MP
C3/341C:	AD3B    	; Max MP

Hi-fork: Hide portrait
C3/341E:	20E10A  	JSR $0AE1      ; Init portrait
C3/3421:	4CB634  	JMP $34B6      ; Hide portrait

Draw info for member 3
C3/3424:	A56B    	LDA $6B        ; Nobody here?
C3/3426:	30F6    	BMI $341E      ; Abort if so
C3/3428:	A671    	LDX $71        ; Actor's address
C3/342A:	8667    	STX $67        ; Memorize it
C3/342C:	A924    	LDA #$24       ; Palette 1
C3/342E:	8529    	STA $29        ; Color: Blue
C3/3430:	A21538  	LDX #$3815     ; Text ptrs loc
C3/3433:	A00600  	LDY #$0006     ; Strings: 3
C3/3436:	202C71  	JSR $712C      ; Draw "LV/HP/MP"
C3/3439:	A0E73B  	LDY #$3BE7     ; Class/KO pos
C3/343C:	A27875  	LDX #$7578     ; Icon position
C3/343F:	6448    	STZ $48        ; Anim mode: 0
C3/3441:	20C234  	JSR $34C2      ; Do class/status
C3/3444:	A20138  	LDX #$3801     ; Text ptrs loc
C3/3447:	86F1    	STX $F1        ; ...
C3/3449:	A00400  	LDY #$0004     ; Strings: 2
C3/344C:	84EF    	STY $EF        ; ...
C3/344E:	202C71  	JSR $712C      ; Draw both "/"
C3/3451:	A0D93B  	LDY #$3BD9     ; Text position
C3/3454:	206A35  	JSR $356A      ; Draw actor name
C3/3457:	A26034  	LDX #$3460     ; Coords tbl ptr
C3/345A:	20D70C  	JSR $0CD7      ; Draw LV, HP, MP
C3/345D:	4CE10A  	JMP $0AE1      ; Create portrait

Tilemap pointers for stats of member 3
C3/3460:	A73C    	; Level
C3/3462:	E33C    	; HP
C3/3464:	ED3C    	; Max HP
C3/3466:	233D    	; MP
C3/3468:	2D3D    	; Max MP

Hi-fork: Hide portrait
C3/346A:	200C0B  	JSR $0B0C      ; Init portrait
C3/346D:	4CB634  	JMP $34B6      ; Hide portrait

Draw info for member 4
C3/3470:	A56C    	LDA $6C        ; Nobody here?
C3/3472:	30F6    	BMI $346A      ; Abort if so
C3/3474:	A673    	LDX $73        ; Actor's address
C3/3476:	8667    	STX $67        ; Memorize it
C3/3478:	A924    	LDA #$24       ; Palette 1
C3/347A:	8529    	STA $29        ; Color: Blue
C3/347C:	A21B38  	LDX #$381B     ; Text ptrs loc
C3/347F:	A00600  	LDY #$0006     ; Strings: 3
C3/3482:	202C71  	JSR $712C      ; Draw "LV/HP/MP"
C3/3485:	A0673D  	LDY #$3D67     ; Class/KO pos
C3/3488:	A278A5  	LDX #$A578     ; Icon position
C3/348B:	6448    	STZ $48        ; Anim mode: 0
C3/348D:	20C234  	JSR $34C2      ; Do class/status
C3/3490:	A20538  	LDX #$3805     ; Text ptrs loc
C3/3493:	86F1    	STX $F1        ; ...
C3/3495:	A00400  	LDY #$0004     ; Strings: 2
C3/3498:	84EF    	STY $EF        ; ...
C3/349A:	202C71  	JSR $712C      ; Draw both "/"
C3/349D:	A0593D  	LDY #$3D59     ; Text position
C3/34A0:	206A35  	JSR $356A      ; Draw actor name
C3/34A3:	A2AC34  	LDX #$34AC     ; Coords tbl ptr
C3/34A6:	20D70C  	JSR $0CD7      ; Draw LV, HP, MP
C3/34A9:	4C0C0B  	JMP $0B0C      ; Create portrait

Tilemap pointers for stats of member 4
C3/34AC:	273E    	; Level
C3/34AE:	633E    	; HP
C3/34B0:	6D3E    	; Max HP
C3/34B2:	A33E    	; MP
C3/34B4:	AD3E    	; Max MP

Hide portrait for vacant member slot
C3/34B6:	C220    	REP #$20       ; 16-bit A
C3/34B8:	A9D800  	LDA #$00D8     ; Base Y: 216
C3/34BB:	9F4A347E	STA $7E344A,X  ; Set sprite's
C3/34BF:	E220    	SEP #$20       ; 8-bit A
C3/34C1:	60      	RTS

Display actor's status or class (excludes Status menu)
C3/34C2:	86E7    	STX $E7        ; Save icon pos
C3/34C4:	20E135  	JSR $35E1      ; Set text pos
C3/34C7:	B91400  	LDA $0014,Y    ; Wounded?
C3/34CA:	307F    	BMI $354B      ; Draw it if so
C3/34CC:	2970    	AND #$70       ; Clear/Imp/Pet
C3/34CE:	85E1    	STA $E1        ; Memorize them
C3/34D0:	B91400  	LDA $0014,Y    ; Status LB
C3/34D3:	2907    	AND #$07       ; Dark/Zom/Poison
C3/34D5:	0A      	ASL A          ; Put in bits 1-3
C3/34D6:	85E2    	STA $E2        ; Memorize them
C3/34D8:	B91500  	LDA $0015,Y    ; Status HB
C3/34DB:	2980    	AND #$80       ; Isolate Float
C3/34DD:	05E1    	ORA $E1        ; Add Clear, etc.
C3/34DF:	05E2    	ORA $E2        ; Add Dark, etc.
C3/34E1:	85E1    	STA $E1        ; ...
C3/34E3:	F05F    	BEQ $3544      ; Use class if none
C3/34E5:	64F1    	STZ $F1        ; Sprite index LB
C3/34E7:	64F2    	STZ $F2        ; Sprite index HB
C3/34E9:	A20700  	LDX #$0007     ; Status left: 7
C3/34EC:	DA      	PHX            ; Save counter
C3/34ED:	0A      	ASL A          ; Got current?
C3/34EE:	9047    	BCC $3537      ; Skip if not
C3/34F0:	48      	PHA            ; Save status
C3/34F1:	A903    	LDA #$03       ; Min slot: 24
C3/34F3:	A0C982  	LDY #$82C9     ; C3/82C9
C3/34F6:	20DE11  	JSR $11DE      ; Queue icon OAM
C3/34F9:	A901    	LDA #$01       ; Pans with BG1
C3/34FB:	9F4A367E	STA $7E364A,X  ; Set OBJ flags
C3/34FF:	A548    	LDA $48        ; Anim mode
C3/3501:	9F49367E	STA $7E3649,X  ; Set icon's
C3/3505:	9B      	TXY            ; Queue index
C3/3506:	A6F1    	LDX $F1        ; Sprite index
C3/3508:	8B      	PHB            ; Save DB
C3/3509:	A97E    	LDA #$7E       ; Bank: 7E
C3/350B:	48      	PHA            ; Put on stack
C3/350C:	AB      	PLB            ; Set DB to 7E
C3/350D:	C220    	REP #$20       ; 16-bit A
C3/350F:	BFAFECD8	LDA $D8ECAF,X  ; Anim table ptr
C3/3513:	99C932  	STA $32C9,Y    ; Set icon's
C3/3516:	E220    	SEP #$20       ; 8-bit A
C3/3518:	A5E7    	LDA $E7        ; X position
C3/351A:	99CA33  	STA $33CA,Y    ; Set icon's
C3/351D:	A5E8    	LDA $E8        ; Y position
C3/351F:	994A34  	STA $344A,Y    ; Set icon's
C3/3522:	7B      	TDC            ; Clear A
C3/3523:	99CB33  	STA $33CB,Y    ; No use...
C3/3526:	994B34  	STA $344B,Y    ; No use...
C3/3529:	A9D8    	LDA #$D8       ; Bank: D8
C3/352B:	99CA35  	STA $35CA,Y    ; Set ptr HB
C3/352E:	AB      	PLB            ; Restore DB
C3/352F:	18      	CLC            ; Prepare ADC
C3/3530:	A90A    	LDA #$0A       ; Modifier: 10
C3/3532:	65E7    	ADC $E7        ; Add current X
C3/3534:	85E7    	STA $E7        ; Set current X
C3/3536:	68      	PLA            ; Statuses
C3/3537:	E6F1    	INC $F1        ; Sprite index +1
C3/3539:	E6F1    	INC $F1        ; Sprite index +1
C3/353B:	FA      	PLX            ; Statuses left
C3/353C:	CA      	DEX            ; One less left
C3/353D:	D0AD    	BNE $34EC      ; Loop till last
C3/353F:	A920    	LDA #$20       ; Palette 0
C3/3541:	8529    	STA $29        ; Color: User's
C3/3543:	60      	RTS            ; ^ For stats

Fork: Draw actor class
C3/3544:	A920    	LDA #$20       ; Palette 0
C3/3546:	8529    	STA $29        ; Color: User's
C3/3548:	4C8335  	JMP $3583      ; Draw class

Fork: Draw "Wounded"
C3/354B:	A28B9E  	LDX #$9E8B     ; 7E/9E8B
C3/354E:	8E8121  	STX $2181      ; Set WRAM LBs
C3/3551:	A600    	LDX $00        ; Index: 0
C3/3553:	BFE337C3	LDA $C337E3,X  ; Letter
C3/3557:	8D8021  	STA $2180      ; Add to string
C3/355A:	E8      	INX            ; Point to next
C3/355B:	E00800  	CPX #$0008     ; Copied 8?
C3/355E:	D0F3    	BNE $3553      ; Loop if not
C3/3560:	9C8021  	STZ $2180      ; End string
C3/3563:	A928    	LDA #$28       ; Palette 2
C3/3565:	8529    	STA $29        ; Color: Gray
C3/3567:	4CB987  	JMP $87B9      ; Draw string

Draw actor name
C3/356A:	20E135  	JSR $35E1      ; Set pos/WRAM/Y
C3/356D:	A20600  	LDX #$0006     ; Letters: 6
C3/3570:	B90200  	LDA $0002,Y    ; Letter
C3/3573:	8D8021  	STA $2180      ; Add to string
C3/3576:	C8      	INY            ; Point to next
C3/3577:	CA      	DEX            ; One less left
C3/3578:	D0F6    	BNE $3570      ; Loop till last
C3/357A:	9C8021  	STZ $2180      ; End string
C3/357D:	4CB987  	JMP $87B9      ; Draw string

Draw actor class
C3/3580:	20E135  	JSR $35E1      ; Set pos/WRAM/Y
C3/3583:	B90000  	LDA $0000,Y    ; Actor
C3/3586:	8D0242  	STA $4202      ; Set multiplicand
C3/3589:	A907    	LDA #$07       ; String size
C3/358B:	8D0342  	STA $4203      ; Set multiplier
C3/358E:	EA      	NOP
C3/358F:	EA      	NOP
C3/3590:	EA      	NOP
C3/3591:	EA      	NOP
C3/3592:	AE1642  	LDX $4216      ; Index product
C3/3595:	A00700  	LDY #$0007     ; Letters: 7
C3/3598:	BF403BCF	LDA $CF3B40,X  ; Letter
C3/359C:	8D8021  	STA $2180      ; Add to string
C3/359F:	E8      	INX            ; Index +1
C3/35A0:	88      	DEY            ; One less char
C3/35A1:	D0F5    	BNE $3598      ; Loop till last
C3/35A3:	A9FF    	LDA #$FF       ; Space char
C3/35A5:	8D8021  	STA $2180      ; Add to string
C3/35A8:	9C8021  	STZ $2180      ; End string
C3/35AB:	4CB987  	JMP $87B9      ; Draw string

Draw equipped esper
C3/35AE:	20E135  	JSR $35E1      ; Set pos/WRAM/Y
C3/35B1:	B91E00  	LDA $001E,Y    ; Actor's esper
C3/35B4:	C9FF    	CMP #$FF       ; None?
C3/35B6:	F018    	BEQ $35D0      ; Blank if so
C3/35B8:	0A      	ASL A          ; x2
C3/35B9:	0A      	ASL A          ; x4
C3/35BA:	0A      	ASL A          ; x8
C3/35BB:	AA      	TAX            ; Index it
C3/35BC:	A00800  	LDY #$0008     ; Letters: 8
C3/35BF:	BF0E75ED	LDA $ED750E,X  ; Letter
C3/35C3:	8D8021  	STA $2180      ; Add to string
C3/35C6:	E8      	INX            ; Point to next
C3/35C7:	88      	DEY            ; One less left
C3/35C8:	D0F5    	BNE $35BF      ; Loop till last
C3/35CA:	9C8021  	STZ $2180      ; End string
C3/35CD:	4CB987  	JMP $87B9      ; Draw string

Fork: Blank esper name
C3/35D0:	A00800  	LDY #$0008     ; Letters: 8
C3/35D3:	A9FF    	LDA #$FF       ; Space char
C3/35D5:	8D8021  	STA $2180      ; Add to string
C3/35D8:	88      	DEY            ; One less left
C3/35D9:	D0FA    	BNE $35D5      ; Loop till last
C3/35DB:	9C8021  	STZ $2180      ; End string
C3/35DE:	4CB987  	JMP $87B9      ; Draw string

Prepare name drawing
C3/35E1:	A2899E  	LDX #$9E89     ; 7E/9E89
C3/35E4:	8E8121  	STX $2181      ; Set WRAM LBs
C3/35E7:	C220    	REP #$20       ; 16-bit A
C3/35E9:	98      	TYA            ; Tilemap ptr
C3/35EA:	E220    	SEP #$20       ; 8-bit A
C3/35EC:	8D8021  	STA $2180      ; Set position LB
C3/35EF:	EB      	XBA            ; Switch to HB
C3/35F0:	8D8021  	STA $2180      ; Set position HB
C3/35F3:	7B      	TDC            ; Clear A
C3/35F4:	A467    	LDY $67        ; Actor address
C3/35F6:	60      	RTS

Reset OAM and anim queue; disable screen, interrupts, pad, HDMA
C3/35F7:	A980    	LDA #$80       ; BRT:0 and OFF
C3/35F9:	8D0021  	STA $2100      ; Disable screen
C3/35FC:	207F11  	JSR $117F      ; Reset OAM, queue
C3/35FF:	9C0042  	STZ $4200      ; Disable INT, pad
C3/3602:	9C0B42  	STZ $420B      ; Disable DMA...
C3/3605:	9C0C42  	STZ $420C      ; Disable HDMA
C3/3608:	60      	RTS

Prepare fade-in
C3/3609:	A901    	LDA #$01       ; BRT: 1 and ON
C3/360B:	8544    	STA $44        ; Set brightness
C3/360D:	4CD313  	JMP $13D3      ; Refresh screen

Redraw time in main menu
C3/3610:	20A40F  	JSR $0FA4      ; Queue BG3 upload
C3/3613:	4C0733  	JMP $3307      ; Draw time

Queue main screen designation HDMA for main menu
C3/3616:	A600    	LDX $00        ; Index: 0
C3/3618:	A917    	LDA #$17       ; BG1-3, sprites
C3/361A:	9F099A7E	STA $7E9A09,X  ; Set MS desig.
C3/361E:	E8      	INX            ; Index +1
C3/361F:	E0DF00  	CPX #$00DF     ; At 7E/9AE8?
C3/3622:	D0F6    	BNE $361A      ; Loop if not
C3/3624:	A940    	LDA #$40       ; 1Rx1B via ptrs
C3/3626:	8D6043  	STA $4360      ; Set DMA mode
C3/3629:	A92C    	LDA #$2C       ; $212C
C3/362B:	8D6143  	STA $4361      ; To MS desig.
C3/362E:	A04336  	LDY #$3643     ; C3/3643
C3/3631:	8C6243  	STY $4362      ; Set src LBs
C3/3634:	A9C3    	LDA #$C3       ; Bank: C3
C3/3636:	8D6443  	STA $4364      ; Set src HB
C3/3639:	A97E    	LDA #$7E       ; Bank: 7E
C3/363B:	8D6743  	STA $4367      ; Set indir HB
C3/363E:	A940    	LDA #$40       ; Channel: 6
C3/3640:	0443    	TSB $43        ; Queue HDMA-6
C3/3642:	60      	RTS

Main screen designation table for main menu
C3/3643:	F0 099A 	; 112 lines, use $9A09
C3/3646:	F0 799A 	; 112 lines, use $9A79
C3/3649:	00      	; End

Queue member swap animation for Order menu
C3/364A:	A528    	LDA $28        ; First choice
C3/364C:	C54B    	CMP $4B        ; Above second?
C3/364E:	9015    	BCC $3665      ; Branch if so
C3/3650:	A903    	LDA #$03       ; Min slot: 24
C3/3652:	A09C36  	LDY #$369C     ; C3/369C
C3/3655:	20DE11  	JSR $11DE      ; Queue B's anim
C3/3658:	208936  	JSR $3689      ; Set slot B's Y
C3/365B:	A903    	LDA #$03       ; Min slot: 24
C3/365D:	A0E736  	LDY #$36E7     ; C3/36E7
C3/3660:	20DE11  	JSR $11DE      ; Queue A's anim
C3/3663:	8015    	BRA $367A      ; Set slot A's Y

Fork: First choice is above second
C3/3665:	A903    	LDA #$03       ; Min slot: 24
C3/3667:	A09C36  	LDY #$369C     ; C3/369C
C3/366A:	20DE11  	JSR $11DE      ; Queue A's anim
C3/366D:	207A36  	JSR $367A      ; Set slot A's Y
C3/3670:	A903    	LDA #$03       ; Min slot: 24
C3/3672:	A0E736  	LDY #$36E7     ; C3/36E7
C3/3675:	20DE11  	JSR $11DE      ; Queue B's anim
C3/3678:	800F    	BRA $3689      ; Set slot B's Y

Fork: Set base scanline for slot A
C3/367A:	9B      	TXY            ; Queue index
C3/367B:	7B      	TDC            ; Clear A
C3/367C:	A528    	LDA $28        ; Chosen slot A
C3/367E:	AA      	TAX            ; Index it
C3/367F:	BF9836C3	LDA $C33698,X  ; Base scanline
C3/3683:	BB      	TYX            ; Queue index
C3/3684:	9FCA337E	STA $7E33CA,X  ; Put in queue
C3/3688:	60      	RTS

Fork: Set base scanline for slot B
C3/3689:	9B      	TXY            ; Queue index
C3/368A:	7B      	TDC            ; Clear A
C3/368B:	A54B    	LDA $4B        ; Chosen slot B
C3/368D:	AA      	TAX            ; Index it
C3/368E:	BF9836C3	LDA $C33698,X  ; Base scanline
C3/3692:	BB      	TYX            ; Queue index
C3/3693:	9FCA337E	STA $7E33CA,X  ; Put in queue
C3/3697:	60      	RTS

Base scanlines for member swap animation
C3/3698:	0D      	; Member slot 1
C3/3699:	3D      	; Member slot 2
C3/369A:	6D      	; Member slot 3
C3/369B:	9D      	; Member slot 4

Erase member slot contents from the top down, and vice versa
C3/369C:	AA      	TAX            ; Index mode
C3/369D:	7CA036  	JMP ($36A0,X)  ; Handle mode

Jump table for the above
C3/36A0:	A636    	; Pointless...
C3/36A2:	AB36    	; Erase 4 lines
C3/36A4:	CA36    	; Print 4 lines

Mode 0: Erase 4 lines, advance mode...
C3/36A6:	A62D    	LDX $2D        ; Queue index
C3/36A8:	FE4936  	INC $3649,X    ; Mode +1

Mode 1: Erase 4 lines
C3/36AB:	A42D    	LDY $2D        ; Queue index
C3/36AD:	A522    	LDA $22        ; Time left
C3/36AF:	C90C    	CMP #$0C       ; 12 frames?
C3/36B1:	F00F    	BEQ $36C2      ; Unmask if so
C3/36B3:	7B      	TDC            ; Clear A
C3/36B4:	B9CA33  	LDA $33CA,Y    ; Scanline
C3/36B7:	AA      	TAX            ; Index it
C3/36B8:	A906    	LDA #$06       ; On MS: BG2+BG3
C3/36BA:	203F37  	JSR $373F      ; Hide 4 lines
C3/36BD:	99CA33  	STA $33CA,Y    ; Save scanline
C3/36C0:	38      	SEC            ; Set to requeue
C3/36C1:	60      	RTS

Fork: Start unmasking
C3/36C2:	A62D    	LDX $2D        ; Queue index
C3/36C4:	FE4936  	INC $3649,X    ; Mode +1
C3/36C7:	DECA33  	DEC $33CA,X    ; Scanline -1

Mode 2: Print 4 lines
C3/36CA:	A545    	LDA $45        ; Menu flags
C3/36CC:	8908    	BIT #$08       ; Got go-signal?
C3/36CE:	F013    	BEQ $36E3      ; Exit if not
C3/36D0:	A42D    	LDY $2D        ; Queue index
C3/36D2:	A522    	LDA $22        ; Timer expired?
C3/36D4:	F00F    	BEQ $36E5      ; Dequeue if so
C3/36D6:	7B      	TDC            ; Clear A
C3/36D7:	B9CA33  	LDA $33CA,Y    ; Scanline
C3/36DA:	AA      	TAX            ; Index it
C3/36DB:	A917    	LDA #$17       ; On MS: BGs+OBJ
C3/36DD:	205537  	JSR $3755      ; Unhide 4 lines
C3/36E0:	99CA33  	STA $33CA,Y    ; Save scanline
C3/36E3:	38      	SEC            ; Set to requeue
C3/36E4:	60      	RTS            ; Exit
C3/36E5:	18      	CLC            ; Set to dequeue
C3/36E6:	60      	RTS

Erase member slot contents from the bottom up, and vice versa
C3/36E7:	AA      	TAX            ; Index mode
C3/36E8:	7CEB36  	JMP ($36EB,X)  ; Handle mode

Jump table for the above
C3/36EB:	F136    	; Start from bottom
C3/36ED:	FF36    	; Erase 4 lines
C3/36EF:	2037    	; Print 4 lines

Mode 0: Start from bottom
C3/36F1:	A62D    	LDX $2D        ; Queue index
C3/36F3:	FE4936  	INC $3649,X    ; Mode +1
C3/36F6:	BDCA33  	LDA $33CA,X    ; Top scanline
C3/36F9:	18      	CLC            ; Prepare ADC
C3/36FA:	692F    	ADC #$2F       ; Go 47 px down
C3/36FC:	9DCA33  	STA $33CA,X    ; Save changes

Mode 1: Erase 4 lines
C3/36FF:	A42D    	LDY $2D        ; Queue index
C3/3701:	A522    	LDA $22        ; Time left
C3/3703:	C90C    	CMP #$0C       ; 12 frames?
C3/3705:	F011    	BEQ $3718      ; Unmask if so
C3/3707:	7B      	TDC            ; Clear A
C3/3708:	B9CA33  	LDA $33CA,Y    ; Scanline
C3/370B:	AA      	TAX            ; Index it
C3/370C:	A906    	LDA #$06       ; On MS: BG2+BG3
C3/370E:	205537  	JSR $3755      ; Hide 4 lines
C3/3711:	99CA33  	STA $33CA,Y    ; Save scanline
C3/3714:	C622    	DEC $22        ; Anim timer -1
C3/3716:	38      	SEC            ; Set to requeue
C3/3717:	60      	RTS

Fork: Start ummasking
C3/3718:	A62D    	LDX $2D        ; Queue index
C3/371A:	FE4936  	INC $3649,X    ; Mode +1
C3/371D:	FECA33  	INC $33CA,X    ; Scanline +1

Mode 2: Print 4 lines
C3/3720:	A545    	LDA $45        ; Menu flags
C3/3722:	8908    	BIT #$08       ; Got go-signal?
C3/3724:	F015    	BEQ $373B      ; Exit if not
C3/3726:	A42D    	LDY $2D        ; Queue index
C3/3728:	A522    	LDA $22        ; Timer expired?
C3/372A:	F011    	BEQ $373D      ; Dequeue if so
C3/372C:	7B      	TDC            ; Clear A
C3/372D:	B9CA33  	LDA $33CA,Y    ; Scanline
C3/3730:	AA      	TAX            ; Index it
C3/3731:	A917    	LDA #$17       ; On MS: BGs+OBJ
C3/3733:	203F37  	JSR $373F      ; Unhide 4 lines
C3/3736:	99CA33  	STA $33CA,Y    ; Save scanline
C3/3739:	C622    	DEC $22        ; Anim timer -1
C3/373B:	38      	SEC            ; Set to requeue
C3/373C:	60      	RTS            ; Exit
C3/373D:	18      	CLC            ; Set to dequeue
C3/373E:	60      	RTS

Enable or disable desired layers on next 4 lines below
C3/373F:	9F099A7E	STA $7E9A09,X  ; MS desig L1
C3/3743:	E8      	INX            ; Scanline +1
C3/3744:	9F099A7E	STA $7E9A09,X  ; MS desig L2
C3/3748:	E8      	INX            ; Scanline +1
C3/3749:	9F099A7E	STA $7E9A09,X  ; MS desig L3
C3/374D:	E8      	INX            ; Scanline +1
C3/374E:	9F099A7E	STA $7E9A09,X  ; MS desig L4
C3/3752:	E8      	INX            ; Scanline +1
C3/3753:	8A      	TXA            ; Line number
C3/3754:	60      	RTS

Enable or disable desired layers on next 4 lines above
C3/3755:	9F099A7E	STA $7E9A09,X  ; MS desig L4
C3/3759:	CA      	DEX            ; Scanline -1
C3/375A:	9F099A7E	STA $7E9A09,X  ; MS desig L3
C3/375E:	CA      	DEX            ; Scanline -1
C3/375F:	9F099A7E	STA $7E9A09,X  ; MS desig L2
C3/3763:	CA      	DEX            ; Scanline -1
C3/3764:	9F099A7E	STA $7E9A09,X  ; MS desig L1
C3/3768:	CA      	DEX            ; Scanline -1
C3/3769:	8A      	TXA            ; Line number
C3/376A:	60      	RTS

Set to condense BG3 text in main menu
C3/376B:	A902    	LDA #$02       ; 1Rx2B to PPU
C3/376D:	8D5043  	STA $4350      ; Set DMA mode
C3/3770:	A912    	LDA #$12       ; $2112
C3/3772:	8D5143  	STA $4351      ; To BG3 V-Scroll
C3/3775:	A08A37  	LDY #$378A     ; C3/378A
C3/3778:	8C5243  	STY $4352      ; Set src LBs
C3/377B:	A9C3    	LDA #$C3       ; Bank: C3
C3/377D:	8D5443  	STA $4354      ; Set src HB
C3/3780:	A9C3    	LDA #$C3       ; ...
C3/3782:	8D5743  	STA $4357      ; Set indir HB
C3/3785:	A920    	LDA #$20       ; Channel: 5
C3/3787:	0443    	TSB $43        ; Queue HDMA-5
C3/3789:	60      	RTS

Text shifting table for the above
C3/378A:	0F 0000 	; Nothing
C3/378D:	0F 0300 	; Item
C3/3790:	0F 0400 	; Skills
C3/3793:	0F 0500 	; Equip
C3/3796:	0F 0600 	; Relic
C3/3799:	0F 0700 	; Status
C3/379C:	0F 0800 	; Config
C3/379F:	0F 0900 	; Save
C3/37A2:	07 0800 	; Nothing
C3/37A5:	08 0000 	; Nothing
C3/37A8:	08 0000 	; Time
C3/37AB:	18 0000 	; The rest
C3/37AE:	00      	; End

65: Shift screen left or right
C3/37AF:	A520    	LDA $20        ; Timer expired?
C3/37B1:	D004    	BNE $37B7      ; Branch if not
C3/37B3:	A527    	LDA $27        ; Queued command
C3/37B5:	8526    	STA $26        ; Execute it next
C3/37B7:	C220    	REP #$20       ; 16-bit A
C3/37B9:	A535    	LDA $35        ; BG1 X-Pos
C3/37BB:	18      	CLC            ; Prepare ADC
C3/37BC:	659C    	ADC $9C        ; Add scroll speed
C3/37BE:	8535    	STA $35        ; Set BG1 X-Pos
C3/37C0:	8539    	STA $39        ; Set BG2 X-Pos
C3/37C2:	853D    	STA $3D        ; Set BG3 X-Pos
C3/37C4:	E220    	SEP #$20       ; 8-bit A
C3/37C6:	60      	RTS

Load navigation data for non-shifted Status menu
C3/37C7:	A0D637  	LDY #$37D6     ; C3/37D6
C3/37CA:	4C8106  	JMP $0681      ; Load navig data

Handle D-Pad for non-shifted Status menu
C3/37CD:	20B007  	JSR $07B0      ; Handle D-Pad
C3/37D0:	A0DB37  	LDY #$37DB     ; C3/37DB
C3/37D3:	4CC306  	JMP $06C3      ; Relocate cursor

Navigation data for non-shifted Status menu
C3/37D6:	80      	; Wraps vertically
C3/37D7:	00      	; Initial column
C3/37D8:	00      	; Initial row
C3/37D9:	01      	; 1 column
C3/37DA:	04      	; 4 rows

Cursor positions for non-shifted Status menu
C3/37DB:	9059    	; Command 1
C3/37DD:	9065    	; Command 2
C3/37DF:	9071    	; Command 3
C3/37E1:	907D    	; Command 4

Text, "Wounded "
C3/37E3:	7BB98789659B89FF

Text pointers for main menu and save file submenus
C3/37EB:	C538    	; TIME
C3/37ED:	D038    	; Steps
C3/37EF:	2039    	; Order
C3/37F1:	9338    	; Item
C3/37F3:	9A38    	; Skills
C3/37F5:	A738    	; Relic
C3/37F7:	AF38    	; Status
C3/37F9:	4638    	; /
C3/37FB:	4A38    	; /
C3/37FD:	5D38    	; /
C3/37FF:	6138    	; /
C3/3801:	7438    	; /
C3/3803:	7838    	; /
C3/3805:	8B38    	; /
C3/3807:	8F38    	; /
C3/3809:	3738    	; LV
C3/380B:	3C38    	; HP
C3/380D:	4138    	; MP
C3/380F:	4E38    	; LV
C3/3811:	5338    	; HP
C3/3813:	5838    	; MP
C3/3815:	6538    	; LV
C3/3817:	6A38    	; HP
C3/3819:	6F38    	; MP
C3/381B:	7C38    	; LV
C3/381D:	8138    	; HP
C3/381F:	8638    	; MP
C3/3821:	A138    	; Equip
C3/3823:	B738    	; Config
C3/3825:	DB38    	; Yes
C3/3827:	E038    	; No
C3/3829:	E638    	; This
C3/382B:	EF38    	; data?
C3/382D:	DB38    	; Yes
C3/382F:	E038    	; No
C3/3831:	F938    	; Erasing
C3/3833:	0239    	; data.
C3/3835:	0C39    	; Okay?

Positioned text for main menu and save file submenus
C3/3837:	9D39 2B3500                    ; LV
C3/383C:	DD39 272F00                    ; HP
C3/3841:	1D3A 2C2F00                    ; MP
C3/3846:	EB39 CE00                      ; /
C3/384A:	2B3A CE00                      ; /
C3/384E:	1D3B 2B3500                    ; LV
C3/3853:	5D3B 272F00                    ; HP
C3/3858:	9D3B 2C2F00                    ; MP
C3/385D:	6B3B CE00                      ; /
C3/3861:	AB3B CE00                      ; /
C3/3865:	9D3C 2B3500                    ; LV
C3/386A:	DD3C 272F00                    ; HP
C3/386F:	1D3D 2C2F00                    ; MP
C3/3874:	EB3C CE00                      ; /
C3/3878:	2B3D CE00                      ; /
C3/387C:	1D3E 2B3500                    ; LV
C3/3881:	5D3E 272F00                    ; HP
C3/3886:	9D3E 2C2F00                    ; MP
C3/388B:	6B3E CE00                      ; /
C3/388F:	AB3E CE00                      ; /
C3/3893:	3B79 8A8C84A000                ; Item
C3/389A:	BB79 876F77C100                ; Skills
C3/38A1:	FB79 7D892300                  ; Equip
C3/38A7:	BB7A 8A6E7A74A800              ; Relic
C3/38AF:	3B7B 7884C57E7800              ; Status
C3/38B7:	7B7B 72B864C62E00              ; Config
C3/38BF:	FB7B 7AC52400                  ; Save
C3/38C5:	BB7C 33282C2400                ; Time
C3/38CC:	FF7C CF00                      ; :
C3/38D0:	B77D 69798900                  ; Steps
C3/38D6:	377E 2CAA00                    ; Gp
C3/38DB:	7D7A 618D00                    ; Yes
C3/38E0:	FD7A 8D8D8F00                  ; No
C3/38E6:	F778 739B44C57E4500            ; This
C3/38EF:	7779 6137A39D796BCB00          ; data?
C3/38F9:	F778 73ADBB71778500            ; Erasing
C3/3902:	7779 6B6D739F9D79D200          ; data.
C3/390C:	F779 8D8D45796BCB00            ; Okay?
C3/3915:	777C 7AC524779D777FD200        ; Saved. (unused)
C3/3920:	3D81 7F8D718D00                ; Order

Load navigation data for Config page 1
C3/3927:	A03639  	LDY #$3936     ; C3/3936
C3/392A:	4C8106  	JMP $0681      ; Load navig data

Handle D-Pad for Config page 1
C3/392D:	20B007  	JSR $07B0      ; Handle D-Pad
C3/3930:	A03B39  	LDY #$393B     ; C3/393B
C3/3933:	4CC306  	JMP $06C3      ; Relocate cursor

Navigation data for Config page 1
C3/3936:	81      	; Never wraps
C3/3937:	00      	; Initial column
C3/3938:	00      	; Initial row
C3/3939:	01      	; 1 column
C3/393A:	0A      	; 10 rows

Cursor positions for Config page 1
C3/393B:	6029    	; Bat.Mode
C3/393D:	6039    	; Bat.Speed
C3/393F:	6049    	; Msg.Speed
C3/3941:	6059    	; Cmd.Set
C3/3943:	6069    	; Gauge
C3/3945:	6079    	; Sound
C3/3947:	6089    	; Cursor
C3/3949:	6099    	; Reequip
C3/394B:	60A9    	; Button
C3/394D:	60B9    	; Controller

Load navigation data for Config page 2
C3/394F:	A05E39  	LDY #$395E     ; C3/395E
C3/3952:	4C8106  	JMP $0681      ; Load navig data

Handle D-Pad for Config page 2
C3/3955:	20B007  	JSR $07B0      ; Handle D-Pad
C3/3958:	A06339  	LDY #$3963     ; C3/3963
C3/395B:	4CC306  	JMP $06C3      ; Relocate cursor

Navigation data for Config page 2
C3/395E:	81      	; Never wraps
C3/395F:	00      	; Initial column
C3/3960:	00      	; Initial row
C3/3961:	01      	; 1 column
C3/3962:	06      	; 6 rows

Cursor positions for Config page 2
C3/3963:	6029    	; Mag.Order
C3/3965:	6069    	; Window
C3/3967:	6079    	; Color
C3/3969:	6099    	; R
C3/396B:	60A9    	; G
C3/396D:	60B9    	; B

Draw Config menu, load navigation data, create arrow
C3/396F:	A902    	LDA #$02       ; 32x64 at $0000
C3/3971:	8D0721  	STA $2107      ; Set BG1 map loc
C3/3974:	A0FBFF  	LDY #$FFFB     ; Y: -5
C3/3977:	843F    	STY $3F        ; Set BG3 Y-Pos
C3/3979:	20BC71  	JSR $71BC      ; Clear BG2 map A
C3/397C:	A0B63A  	LDY #$3AB6     ; C3/3AB6
C3/397F:	20C403  	JSR $03C4      ; Draw main window
C3/3982:	A0BA3A  	LDY #$3ABA     ; C3/3ABA
C3/3985:	20C403  	JSR $03C4      ; Draw title window
C3/3988:	20BD0E  	JSR $0EBD      ; Upload windows
C3/398B:	20323A  	JSR $3A32      ; Load gauge colors
C3/398E:	20A971  	JSR $71A9      ; Clear BG1 map A
C3/3991:	20AD71  	JSR $71AD      ; Clear BG1 map B
C3/3994:	20D071  	JSR $71D0      ; Clear BG3 map A
C3/3997:	20D571  	JSR $71D5      ; Clear BG3 map B
C3/399A:	A92C    	LDA #$2C       ; Palette 3
C3/399C:	8529    	STA $29        ; Color: Blue
C3/399E:	A08F4E  	LDY #$4E8F     ; Text pointer
C3/39A1:	202603  	JSR $0326      ; Draw "Config"
C3/39A4:	A924    	LDA #$24       ; Palette 1
C3/39A6:	8529    	STA $29        ; Color: Blue
C3/39A8:	A2814E  	LDX #$4E81     ; Text ptrs loc
C3/39AB:	A00E00  	LDY #$000E     ; Strings: 7
C3/39AE:	204E71  	JSR $714E      ; Draw Bat.Mode, etc.
C3/39B1:	A924    	LDA #$24       ; ...
C3/39B3:	8529    	STA $29        ; ...
C3/39B5:	A2F54D  	LDX #$4DF5     ; Text ptrs loc
C3/39B8:	A00400  	LDY #$0004     ; Strings: 2
C3/39BB:	202C71  	JSR $712C      ; Draw Cursor, Contr.
C3/39BE:	A920    	LDA #$20       ; Palette 0
C3/39C0:	8529    	STA $29        ; Color: User's
C3/39C2:	A2F94D  	LDX #$4DF9     ; Text ptrs loc
C3/39C5:	A00400  	LDY #$0004     ; Strings: 2
C3/39C8:	202C71  	JSR $712C      ; Draw Fast, Slow
C3/39CB:	20603C  	JSR $3C60      ; Draw Active, Wait
C3/39CE:	208B3C  	JSR $3C8B      ; Draw Bat.Spd nums
C3/39D1:	20C63C  	JSR $3CC6      ; Draw Msg.Spd nums
C3/39D4:	20073D  	JSR $3D07      ; Draw Window, Short
C3/39D7:	20303D  	JSR $3D30      ; Draw On and Off
C3/39DA:	20593D  	JSR $3D59      ; Draw Stereo, Mono
C3/39DD:	20843D  	JSR $3D84      ; Draw Reset, Memory
C3/39E0:	20AF3D  	JSR $3DAF      ; Draw Optimum, Empty
C3/39E3:	20DA3D  	JSR $3DDA      ; Draw Btn.Set options
C3/39E6:	200B3E  	JSR $3E0B      ; Draw Single/Multiple
C3/39E9:	A924    	LDA #$24       ; Palette 1
C3/39EB:	8529    	STA $29        ; Color: Blue
C3/39ED:	A2F44E  	LDX #$4EF4     ; Text ptrs loc
C3/39F0:	A00600  	LDY #$0006     ; Strings: 3
C3/39F3:	204E71  	JSR $714E      ; Draw page-2 titles
C3/39F6:	20243A  	JSR $3A24      ; Draw empty gauges
C3/39F9:	A920    	LDA #$20       ; Palette 0
C3/39FB:	8529    	STA $29        ; Color: User's
C3/39FD:	A2004F  	LDX #$4F00     ; Text ptrs loc
C3/3A00:	A00C00  	LDY #$000C     ; Strings: 6
C3/3A03:	202C71  	JSR $712C      ; Draw 1/2/3, R/G/B
C3/3A06:	201D41  	JSR $411D      ; Draw M.Order options
C3/3A09:	20CB41  	JSR $41CB      ; Draw skin numbers
C3/3A0C:	201442  	JSR $4214      ; Draw skin palette
C3/3A0F:	20A442  	JSR $42A4      ; Draw RGB info
C3/3A12:	20C93A  	JSR $3AC9      ; Get nav data; BG1 Y
C3/3A15:	20930E  	JSR $0E93      ; Upload BG1 A+B
C3/3A18:	20D90E  	JSR $0ED9      ; Upload BG3 A+B
C3/3A1B:	A901    	LDA #$01       ; Min slot: 8
C3/3A1D:	A0543A  	LDY #$3A54     ; C3/3A54
C3/3A20:	20DE11  	JSR $11DE      ; Queue arrow OAM
C3/3A23:	60      	RTS

Draw empty color gauges
C3/3A24:	A930    	LDA #$30       ; Palette 4
C3/3A26:	8529    	STA $29        ; Color: Gray
C3/3A28:	A2FA4E  	LDX #$4EFA     ; Text ptrs loc
C3/3A2B:	A00600  	LDY #$0006     ; Strings: 3
C3/3A2E:	202C71  	JSR $712C      ; Draw text
C3/3A31:	60      	RTS

Load color gauge palette
C3/3A32:	A600    	LDX $00        ; Color index: 0
C3/3A34:	A940    	LDA #$40       ; CGRAM: $0080
C3/3A36:	8D2121  	STA $2121      ; To BG pal 4
C3/3A39:	C220    	REP #$20       ; 16-bit A
C3/3A3B:	BF80E8D8	LDA $D8E880,X  ; Font color
C3/3A3F:	9FC9307E	STA $7E30C9,X  ; Save in RAM
C3/3A43:	E220    	SEP #$20       ; 8-bit A
C3/3A45:	8D2221  	STA $2122      ; Put LB in CGRAM
C3/3A48:	EB      	XBA            ; Switch to HB
C3/3A49:	8D2221  	STA $2122      ; Put HB in CGRAM
C3/3A4C:	E8      	INX            ; Color index +1
C3/3A4D:	E8      	INX            ; Color index +1
C3/3A4E:	E02000  	CPX #$0020     ; Done 16 colors?
C3/3A51:	D0E6    	BNE $3A39      ; Loop if not
C3/3A53:	60      	RTS

Update arrow in Config menu
C3/3A54:	AA      	TAX            ; Index mode
C3/3A55:	7C583A  	JMP ($3A58,X)  ; Handle mode

Jump table for the above
C3/3A58:	5C3A    	; Initialize arrow
C3/3A5A:	7F3A    	; Sustain arrow

Mode 0: Initialize arrow
C3/3A5C:	A62D    	LDX $2D        ; Queue index
C3/3A5E:	C220    	REP #$20       ; 16-bit A
C3/3A60:	A99F3A  	LDA #$3A9F     ; Anim table ptr
C3/3A63:	9DC932  	STA $32C9,X    ; Set arrow's
C3/3A66:	A97800  	LDA #$0078     ; X: 120
C3/3A69:	9DCA33  	STA $33CA,X    ; Set arrow's
C3/3A6C:	A91800  	LDA #$0018     ; Base Y: 24
C3/3A6F:	9D4A34  	STA $344A,X    ; Set arrow's
C3/3A72:	E220    	SEP #$20       ; 8-bit A
C3/3A74:	A9C3    	LDA #$C3       ; Bank: C3
C3/3A76:	9DCA35  	STA $35CA,X    ; Set ptr HB
C3/3A79:	FE4936  	INC $3649,X    ; Mode +1
C3/3A7C:	207112  	JSR $1271      ; Set pose timer

Mode 1: Sustain arrow
C3/3A7F:	A42D    	LDY $2D        ; Queue index
C3/3A81:	A54A    	LDA $4A        ; On first page?
C3/3A83:	F004    	BEQ $3A89      ; Branch if so
C3/3A85:	A902    	LDA #$02       ; Arrow: Up
C3/3A87:	8001    	BRA $3A8A      ; Skip a line
C3/3A89:	7B      	TDC            ; Arrow: Down
C3/3A8A:	AA      	TAX            ; Set index
C3/3A8B:	C220    	REP #$20       ; 16-bit A
C3/3A8D:	BF9B3AC3	LDA $C33A9B,X  ; Anim table ptr
C3/3A91:	99C932  	STA $32C9,Y    ; Set arrow's
C3/3A94:	E220    	SEP #$20       ; ...
C3/3A96:	208C12  	JSR $128C      ; Define OAM
C3/3A99:	38      	SEC            ; Set to requeue
C3/3A9A:	60      	RTS

Pointers for Config's large arrows
C3/3A9B:	9F3A    	; Downward arrow
C3/3A9D:	A83A    	; Upward arrow

Animation table for large downward arrow in Config menu
C3/3A9F:	B5C3    	; Hide arrow
C3/3AA1:	10      	; Frames: 16
C3/3AA2:	B13A    	; Show arrow
C3/3AA4:	10      	; Frames: 16
C3/3AA5:	B5C3    	; Bogus...
C3/3AA7:	FF      	; Loop

Animation table for large upward arrow in Config menu
C3/3AA8:	B5C3    	; Hide arrow
C3/3AAA:	10      	; Frames: 16
C3/3AAB:	BBC3    	; Show arrow
C3/3AAD:	10      	; Frames: 16
C3/3AAE:	B5C3    	; Bogus...
C3/3AB0:	FF      	; Loop

OAM for large downward arrow in Config menu
C3/3AB1:	01      	; Tiles: 1
C3/3AB2:	80B0    	; 16x16, X+0, Y+176
C3/3AB4:	033E    	; Tile 3, pal 7, prio 3

Window layout for Config menu
C3/3AB6:	0B591C16	; 30x24 at $590B (Main)
C3/3ABA:	B9580502	; 07x04 at $58B9 (Title)

Switch to Config page 2
C3/3ABE:	A0FB00  	LDY #$00FB     ; Y: 251
C3/3AC1:	8437    	STY $37        ; Set BG1 Y-Pos
C3/3AC3:	204F39  	JSR $394F      ; Load navig data
C3/3AC6:	4C5839  	JMP $3958      ; Relocate cursor

Switch to Config page 1
C3/3AC9:	A0FBFF  	LDY #$FFFB     ; Y: -5
C3/3ACC:	8437    	STY $37        ; Set BG1 Y-Pos
C3/3ACE:	202739  	JSR $3927      ; Load navig data
C3/3AD1:	4C3039  	JMP $3930      ; Relocate cursor

50: Scroll to Config page 2
C3/3AD4:	A520    	LDA $20        ; Timer expired?
C3/3AD6:	F011    	BEQ $3AE9      ; Finalize if so
C3/3AD8:	A54A    	LDA $4A        ; On page 2?...
C3/3ADA:	D014    	BNE $3AF0      ; Branch if so
C3/3ADC:	C220    	REP #$20       ; 16-bit A
C3/3ADE:	A537    	LDA $37        ; BG1 Y-Pos
C3/3AE0:	18      	CLC            ; Prepare ADC
C3/3AE1:	691000  	ADC #$0010     ; Move 16 px down
C3/3AE4:	8537    	STA $37        ; Save changes
C3/3AE6:	E220    	SEP #$20       ; 8-bit A
C3/3AE8:	60      	RTS            ; Exit
C3/3AE9:	A901    	LDA #$01       ; Screen: 2nd
C3/3AEB:	854A    	STA $4A        ; Set active page
C3/3AED:	20BE3A  	JSR $3ABE      ; Switch screens
C3/3AF0:	A90E    	LDA #$0E       ; C3/2325
C3/3AF2:	8526    	STA $26        ; Next: Sustain menu
C3/3AF4:	60      	RTS

51: Scroll to Config page 1
C3/3AF5:	A520    	LDA $20        ; Timer expired?
C3/3AF7:	F011    	BEQ $3B0A      ; Finalize if so
C3/3AF9:	A54A    	LDA $4A        ; On page 1?...
C3/3AFB:	F01E    	BEQ $3B1B      ; Branch if so
C3/3AFD:	C220    	REP #$20       ; 16-bit A
C3/3AFF:	A537    	LDA $37        ; BG1 Y-Pos
C3/3B01:	38      	SEC            ; Prepare SBC
C3/3B02:	E91000  	SBC #$0010     ; Move 16 px up
C3/3B05:	8537    	STA $37        ; Save changes
C3/3B07:	E220    	SEP #$20       ; 8-bit A
C3/3B09:	60      	RTS            ; Exit
C3/3B0A:	644A    	STZ $4A        ; Page: 1st
C3/3B0C:	A0FBFF  	LDY #$FFFB     ; Y: -5
C3/3B0F:	8437    	STY $37        ; Set BG1 Y-Pos
C3/3B11:	202739  	JSR $3927      ; Load navig data
C3/3B14:	A909    	LDA #$09       ; Row: Controller
C3/3B16:	854E    	STA $4E        ; Set cursor row
C3/3B18:	203039  	JSR $3930      ; Relocate cursor
C3/3B1B:	A90E    	LDA #$0E       ; C3/2325
C3/3B1D:	8526    	STA $26        ; Next: Sustain menu
C3/3B1F:	60      	RTS

Set Window 2 positions per scanline for Config menu
C3/3B20:	A901    	LDA #$01       ; 2Rx1B to PPU
C3/3B22:	8D5043  	STA $4350      ; Set DMA mode
C3/3B25:	A928    	LDA #$28       ; $2128, $2129
C3/3B27:	8D5143  	STA $4351      ; To Win 2 L+R
C3/3B2A:	A04E3B  	LDY #$3B4E     ; C3/3B4E
C3/3B2D:	8C5243  	STY $4352      ; Set src LBs
C3/3B30:	A9C3    	LDA #$C3       ; Bank: C3
C3/3B32:	8D5443  	STA $4354      ; Set src HB
C3/3B35:	A9C3    	LDA #$C3       ; ...
C3/3B37:	8D5743  	STA $4357      ; Set indir HB
C3/3B3A:	A920    	LDA #$20       ; Channel: 5
C3/3B3C:	0443    	TSB $43        ; Queue HDMA-5
C3/3B3E:	60      	RTS

Set Window 2 positions for main menu
C3/3B3F:	A920    	LDA #$20       ; Channel: 5
C3/3B41:	1443    	TRB $43        ; Halt HDMA-5
C3/3B43:	A908    	LDA #$08       ; X: 8
C3/3B45:	8D2821  	STA $2128      ; Set left loc
C3/3B48:	A9F7    	LDA #$F7       ; X: 247
C3/3B4A:	8D2921  	STA $2129      ; Set right loc
C3/3B4D:	60      	RTS

Window 2 positions per scanline for Config menu
C3/3B4E:	27 FF FF	; 39 lines: 255, 255
C3/3B51:	50 08 F7	; 80 lines: 8, 247
C3/3B54:	50 08 F7	; 80 lines: 8, 247
C3/3B57:	10 FF FF	; 16 lines: 255, 255
C3/3B5A:	00      	; End

Upload skin graphics, load colors and tile attributes
C3/3B5B:	A00078  	LDY #$7800     ; $7800
C3/3B5E:	8414    	STY $14        ; Set VRAM ptr
C3/3B60:	AD4E1D  	LDA $1D4E      ; Skin, etc.
C3/3B63:	20043C  	JSR $3C04      ; Set source
C3/3B66:	AD4E1D  	LDA $1D4E      ; Skin, etc.
C3/3B69:	A26000  	LDX #$0060     ; To 7E/312B
C3/3B6C:	202F3C  	JSR $3C2F      ; Load colors
C3/3B6F:	A0001C  	LDY #$1C00     ; Palette: 7
C3/3B72:	4CA903  	JMP $03A9      ; Build skin map

Upload skin for save file 1
C3/3B75:	A0007A  	LDY #$7A00     ; $7A00
C3/3B78:	8414    	STY $14        ; Set VRAM ptr
C3/3B7A:	A491    	LDY $91        ; Blank file?
C3/3B7C:	F006    	BEQ $3B84      ; Branch if so
C3/3B7E:	AF4E6730	LDA $30674E    ; Skin, etc.
C3/3B82:	8001    	BRA $3B85      ; Skip a line
C3/3B84:	7B      	TDC            ; Use skin 1
C3/3B85:	20043C  	JSR $3C04      ; Set source
C3/3B88:	20F314  	JSR $14F3      ; Upload skin
C3/3B8B:	A02018  	LDY #$1820     ; Tile+32, pal 6
C3/3B8E:	4CA903  	JMP $03A9      ; Build skin map

Upload skin for save file 2
C3/3B91:	A0007C  	LDY #$7C00     ; $7C00
C3/3B94:	8414    	STY $14        ; Set VRAM ptr
C3/3B96:	A493    	LDY $93        ; Blank file?
C3/3B98:	F006    	BEQ $3BA0      ; Branch if so
C3/3B9A:	AF4E7130	LDA $30714E    ; Skin, etc.
C3/3B9E:	8001    	BRA $3BA1      ; Skip a line
C3/3BA0:	7B      	TDC            ; Use skin 1
C3/3BA1:	20043C  	JSR $3C04      ; Set source
C3/3BA4:	20F314  	JSR $14F3      ; Upload skin
C3/3BA7:	A04014  	LDY #$1440     ; Tile+64, pal 5
C3/3BAA:	4CA903  	JMP $03A9      ; Build skin map

Upload skin for save file 3
C3/3BAD:	A0007E  	LDY #$7E00     ; $7E00
C3/3BB0:	8414    	STY $14        ; Set VRAM ptr
C3/3BB2:	A495    	LDY $95        ; Blank file?
C3/3BB4:	F006    	BEQ $3BBC      ; Branch if so
C3/3BB6:	AF4E7B30	LDA $307B4E    ; Skin, etc.
C3/3BBA:	8001    	BRA $3BBD      ; Skip a line
C3/3BBC:	7B      	TDC            ; Use skin 1
C3/3BBD:	20043C  	JSR $3C04      ; Set source
C3/3BC0:	20F314  	JSR $14F3      ; Upload skin
C3/3BC3:	A06010  	LDY #$1060     ; Tile+96, pal 4
C3/3BC6:	4CA903  	JMP $03A9      ; Build skin map

Load skin colors for save file 1
C3/3BC9:	A491    	LDY $91        ; Blank file?
C3/3BCB:	F006    	BEQ $3BD3      ; Branch if so
C3/3BCD:	AF4E6730	LDA $30674E    ; Skin, etc.
C3/3BD1:	8001    	BRA $3BD4      ; Skip a line
C3/3BD3:	7B      	TDC            ; Use skin 1
C3/3BD4:	A24000  	LDX #$0040     ; To 7E/310B
C3/3BD7:	202F3C  	JSR $3C2F      ; Load colors
C3/3BDA:	4C3D15  	JMP $153D      ; Refresh CGRAM

Load skin colors for save file 2
C3/3BDD:	A493    	LDY $93        ; Blank file?
C3/3BDF:	F006    	BEQ $3BE7      ; Branch if so
C3/3BE1:	AF4E7130	LDA $30714E    ; Skin, etc.
C3/3BE5:	8001    	BRA $3BE8      ; Skip a line
C3/3BE7:	7B      	TDC            ; Use skin 1
C3/3BE8:	A22000  	LDX #$0020     ; To 7E/30EB
C3/3BEB:	202F3C  	JSR $3C2F      ; Load colors
C3/3BEE:	4C3D15  	JMP $153D      ; Refresh CGRAM

Load skin colors for save file 3
C3/3BF1:	A495    	LDY $95        ; Blank file?
C3/3BF3:	F006    	BEQ $3BFB      ; Branch if so
C3/3BF5:	AF4E7B30	LDA $307B4E    ; Skin, etc.
C3/3BF9:	8001    	BRA $3BFC      ; Skip a line
C3/3BFB:	7B      	TDC            ; Use skin 1
C3/3BFC:	A600    	LDX $00        ; To 7E/30CB
C3/3BFE:	202F3C  	JSR $3C2F      ; Load colors
C3/3C01:	4C3D15  	JMP $153D      ; Refresh CGRAM

Set source for uploading skin graphics
C3/3C04:	290F    	AND #$0F       ; Skin number
C3/3C06:	85E0    	STA $E0        ; Set counter
C3/3C08:	64E1    	STZ $E1        ; Clear HB
C3/3C0A:	A00000  	LDY #$0000     ; ED/0000
C3/3C0D:	8416    	STY $16        ; Set src LBs
C3/3C0F:	A9ED    	LDA #$ED       ; Bank: ED
C3/3C11:	8518    	STA $18        ; Set src HB
C3/3C13:	C220    	REP #$20       ; 16-bit A
C3/3C15:	7B      	TDC            ; Source mod: 0
C3/3C16:	A4E0    	LDY $E0        ; Loop counter
C3/3C18:	F008    	BEQ $3C22      ; Branch if 0
C3/3C1A:	18      	CLC            ; Prepare ADC
C3/3C1B:	698003  	ADC #$0380     ; Adjust src mod
C3/3C1E:	C6E0    	DEC $E0        ; Counter -1
C3/3C20:	80F4    	BRA $3C16      ; Loop
C3/3C22:	18      	CLC            ; Prepare ADC
C3/3C23:	6516    	ADC $16        ; Add src LBs
C3/3C25:	8516    	STA $16        ; Set src LBs
C3/3C27:	E220    	SEP #$20       ; 8-bit A
C3/3C29:	A00004  	LDY #$0400     ; Bytes: 1024
C3/3C2C:	8412    	STY $12        ; Set data size
C3/3C2E:	60      	RTS

Apply player's skin colors
C3/3C2F:	290F    	AND #$0F       ; Skin number
C3/3C31:	85E0    	STA $E0        ; Set counter
C3/3C33:	DA      	PHX            ; ...
C3/3C34:	A900    	LDA #$00       ; Bank: 00
C3/3C36:	85E9    	STA $E9        ; Set src HB
C3/3C38:	64E1    	STZ $E1        ; Counter HB: 0
C3/3C3A:	C220    	REP #$20       ; 16-bit A
C3/3C3C:	A9571D  	LDA #$1D57     ; Base: 7E/1D57
C3/3C3F:	A4E0    	LDY $E0        ; Loop counter
C3/3C41:	F008    	BEQ $3C4B      ; Branch if 0
C3/3C43:	18      	CLC            ; Prepare ADC
C3/3C44:	690E00  	ADC #$000E     ; Skip 7 colors
C3/3C47:	C6E0    	DEC $E0        ; Counter -1
C3/3C49:	80F4    	BRA $3C3F      ; Loop
C3/3C4B:	85E7    	STA $E7        ; Set source LBs
C3/3C4D:	E220    	SEP #$20       ; 8-bit A
C3/3C4F:	A400    	LDY $00        ; Src index: 0
C3/3C51:	FA      	PLX            ; ...
C3/3C52:	B7E7    	LDA [$E7],Y    ; Player color
C3/3C54:	9FCB307E	STA $7E30CB,X  ; Put in palette
C3/3C58:	C8      	INY            ; Src index +1
C3/3C59:	E8      	INX            ; Dst index +1
C3/3C5A:	C00E00  	CPY #$000E     ; Done 7 colors?
C3/3C5D:	D0F3    	BNE $3C52      ; Loop if not
C3/3C5F:	60      	RTS

Draw Bat.Mode settings
C3/3C60:	AD4D1D  	LDA $1D4D      ; Game options
C3/3C63:	2908    	AND #$08       ; Wait mode?
C3/3C65:	F009    	BEQ $3C70      ; Branch if not
C3/3C67:	A928    	LDA #$28       ; Color: Gray
C3/3C69:	20793C  	JSR $3C79      ; Draw "Active"
C3/3C6C:	A920    	LDA #$20       ; Color: User's
C3/3C6E:	8012    	BRA $3C82      ; Draw "Wait"

Fork: Active mode
C3/3C70:	A920    	LDA #$20       ; Color: User's
C3/3C72:	20793C  	JSR $3C79      ; Draw "Active"
C3/3C75:	A928    	LDA #$28       ; Color: Gray
C3/3C77:	8009    	BRA $3C82      ; Draw "Wait"

Fork: Draw "Active"
C3/3C79:	8529    	STA $29        ; Set palette
C3/3C7B:	A0CE4E  	LDY #$4ECE     ; Text pointer
C3/3C7E:	202603  	JSR $0326      ; Draw "Active"
C3/3C81:	60      	RTS

Fork: Draw "Wait"
C3/3C82:	8529    	STA $29        ; Set palette
C3/3C84:	A0074E  	LDY #$4E07     ; Text pointer
C3/3C87:	20F902  	JSR $02F9      ; Draw "Wait"
C3/3C8A:	60      	RTS

Draw Bat.Speed values
C3/3C8B:	A928    	LDA #$28       ; Palette 2
C3/3C8D:	8529    	STA $29        ; Color: Gray
C3/3C8F:	A05C4E  	LDY #$4E5C     ; Text pointer
C3/3C92:	20F902  	JSR $02F9      ; Draw 1-6 in gray
C3/3C95:	A920    	LDA #$20       ; Palette 0
C3/3C97:	8529    	STA $29        ; Color: User's
C3/3C99:	7B      	TDC            ; Clear A
C3/3C9A:	AD4D1D  	LDA $1D4D      ; Game options
C3/3C9D:	2907    	AND #$07       ; Get Bat.Speed
C3/3C9F:	0A      	ASL A          ; Double it
C3/3CA0:	AA      	TAX            ; Index it
C3/3CA1:	C220    	REP #$20       ; 16-bit A
C3/3CA3:	BFBA3CC3	LDA $C33CBA,X  ; Tilemap ptr
C3/3CA7:	85F7    	STA $F7        ; Set position
C3/3CA9:	E220    	SEP #$20       ; 8-bit A
C3/3CAB:	AD4D1D  	LDA $1D4D      ; Game options
C3/3CAE:	2907    	AND #$07       ; Get Bat.Speed
C3/3CB0:	18      	CLC            ; ...
C3/3CB1:	6954    	ADC #$54       ; Convert to text
C3/3CB3:	85F9    	STA $F9        ; Add to string
C3/3CB5:	64FA    	STZ $FA        ; End string
C3/3CB7:	4CF741  	JMP $41F7      ; Draw user speed

Tilemap pointers for Bat.Speed values
C3/3CBA:	253A    	; 1
C3/3CBC:	293A    	; 2
C3/3CBE:	2D3A    	; 3
C3/3CC0:	313A    	; 4
C3/3CC2:	353A    	; 5
C3/3CC4:	393A    	; 6

Draw Msg.Speed values
C3/3CC6:	A928    	LDA #$28       ; Palette 2
C3/3CC8:	8529    	STA $29        ; Color: Gray
C3/3CCA:	A06A4E  	LDY #$4E6A     ; Text pointer
C3/3CCD:	20F902  	JSR $02F9      ; Draw 1-6 in gray
C3/3CD0:	A920    	LDA #$20       ; Palette 0
C3/3CD2:	8529    	STA $29        ; Color: User's
C3/3CD4:	7B      	TDC            ; Clear A
C3/3CD5:	AD4D1D  	LDA $1D4D      ; Game options
C3/3CD8:	2970    	AND #$70       ; Get Msg.Speed
C3/3CDA:	4A      	LSR A          ; 2
C3/3CDB:	4A      	LSR A          ; 4
C3/3CDC:	4A      	LSR A          ; 8
C3/3CDD:	AA      	TAX            ; Index it
C3/3CDE:	C220    	REP #$20       ; 16-bit A
C3/3CE0:	BFFB3CC3	LDA $C33CFB,X  ; Tilemap ptr
C3/3CE4:	85F7    	STA $F7        ; Set position
C3/3CE6:	E220    	SEP #$20       ; 8-bit A
C3/3CE8:	AD4D1D  	LDA $1D4D      ; Game options
C3/3CEB:	2970    	AND #$70       ; Get Msg.Speed
C3/3CED:	4A      	LSR A          ; 2
C3/3CEE:	4A      	LSR A          ; 4
C3/3CEF:	4A      	LSR A          ; 8
C3/3CF0:	4A      	LSR A          ; Now 0-7
C3/3CF1:	18      	CLC            ; ...
C3/3CF2:	6954    	ADC #$54       ; Convert to text
C3/3CF4:	85F9    	STA $F9        ; Add to string
C3/3CF6:	64FA    	STZ $FA        ; End string
C3/3CF8:	4CF741  	JMP $41F7      ; Draw user speed

Tilemap pointers for Msg.Speed values
C3/3CFB:	A53A    	; 1
C3/3CFD:	A93A    	; 2
C3/3CFF:	AD3A    	; 3
C3/3D01:	B13A    	; 4
C3/3D03:	B53A    	; 5
C3/3D05:	B93A    	; 6

Draw Cmd.Set settings
C3/3D07:	AD4D1D  	LDA $1D4D      ; Short mode?
C3/3D0A:	3009    	BMI $3D15      ; Branch if so
C3/3D0C:	A928    	LDA #$28       ; Color: Gray
C3/3D0E:	201E3D  	JSR $3D1E      ; Draw "Short"
C3/3D11:	A920    	LDA #$20       ; Color: User's
C3/3D13:	8012    	BRA $3D27      ; Draw "Window"

Fork: Short mode
C3/3D15:	A920    	LDA #$20       ; Color: User's
C3/3D17:	201E3D  	JSR $3D1E      ; Draw "Short"
C3/3D1A:	A928    	LDA #$28       ; Color: Gray
C3/3D1C:	8009    	BRA $3D27      ; Draw "Window"

Fork: Draw "Short"
C3/3D1E:	8529    	STA $29        ; Set palette
C3/3D20:	A01A4E  	LDY #$4E1A     ; Text pointer
C3/3D23:	20F902  	JSR $02F9      ; Draw "Short"
C3/3D26:	60      	RTS

Fork: Draw "Window"
C3/3D27:	8529    	STA $29        ; Set palette
C3/3D29:	A0D64E  	LDY #$4ED6     ; Text pointer
C3/3D2C:	202603  	JSR $0326      ; Draw "Window"
C3/3D2F:	60      	RTS

Draw Gauge settings
C3/3D30:	AD4E1D  	LDA $1D4E      ; Gauges on?
C3/3D33:	1009    	BPL $3D3E      ; Branch if so
C3/3D35:	A928    	LDA #$28       ; Color: Gray
C3/3D37:	20473D  	JSR $3D47      ; Draw "On"
C3/3D3A:	A920    	LDA #$20       ; Color: User's
C3/3D3C:	8012    	BRA $3D50      ; Draw "Off"

Fork: Gauges on
C3/3D3E:	A920    	LDA #$20       ; Color: User's
C3/3D40:	20473D  	JSR $3D47      ; Draw "On"
C3/3D43:	A928    	LDA #$28       ; Color: Gray
C3/3D45:	8009    	BRA $3D50      ; Draw "Off"

Fork: Draw "On"
C3/3D47:	8529    	STA $29        ; Set palette
C3/3D49:	A0224E  	LDY #$4E22     ; Text pointer
C3/3D4C:	20F902  	JSR $02F9      ; Draw "On"
C3/3D4F:	60      	RTS

Fork: Draw "Off"
C3/3D50:	8529    	STA $29        ; Set palette
C3/3D52:	A0274E  	LDY #$4E27     ; Text pointer
C3/3D55:	20F902  	JSR $02F9      ; Draw "Off"
C3/3D58:	60      	RTS

Draw Sound settings
C3/3D59:	AD4E1D  	LDA $1D4E      ; Game options
C3/3D5C:	2920    	AND #$20       ; Stereo?
C3/3D5E:	F009    	BEQ $3D69      ; Branch if so
C3/3D60:	A928    	LDA #$28       ; Color: Gray
C3/3D62:	20723D  	JSR $3D72      ; Draw "Stereo"
C3/3D65:	A920    	LDA #$20       ; Color: User's
C3/3D67:	8012    	BRA $3D7B      ; Draw "Mono"

Fork: Stereo mode
C3/3D69:	A920    	LDA #$20       ; Color: User's
C3/3D6B:	20723D  	JSR $3D72      ; Draw "Stereo"
C3/3D6E:	A928    	LDA #$28       ; Color: Gray
C3/3D70:	8009    	BRA $3D7B      ; Draw "Mono"

Fork: Draw "Stereo"
C3/3D72:	8529    	STA $29        ; Set palette
C3/3D74:	A02C4E  	LDY #$4E2C     ; Text pointer
C3/3D77:	20F902  	JSR $02F9      ; Draw "Stereo"
C3/3D7A:	60      	RTS

Fork: Draw "Mono"
C3/3D7B:	8529    	STA $29        ; Set palette
C3/3D7D:	A0334E  	LDY #$4E33     ; Text pointer
C3/3D80:	20F902  	JSR $02F9      ; Draw "Mono"
C3/3D83:	60      	RTS

Draw Cursor settings
C3/3D84:	AD4E1D  	LDA $1D4E      ; Game options
C3/3D87:	2940    	AND #$40       ; Cursor memory?
C3/3D89:	F009    	BEQ $3D94      ; Branch if not
C3/3D8B:	A928    	LDA #$28       ; Color: Gray
C3/3D8D:	209D3D  	JSR $3D9D      ; Draw "Reset"
C3/3D90:	A920    	LDA #$20       ; Color: User's
C3/3D92:	8012    	BRA $3DA6      ; Draw "Memory"

Fork: Reset mode
C3/3D94:	A920    	LDA #$20       ; Color: User's
C3/3D96:	209D3D  	JSR $3D9D      ; Draw "Reset"
C3/3D99:	A928    	LDA #$28       ; Color: Gray
C3/3D9B:	8009    	BRA $3DA6      ; Draw "Memory"

Fork: Draw "Reset"
C3/3D9D:	8529    	STA $29        ; Set palette
C3/3D9F:	A0DE4E  	LDY #$4EDE     ; Text pointer
C3/3DA2:	202603  	JSR $0326      ; Draw "Reset"
C3/3DA5:	60      	RTS

Fork: Draw "Memory"
C3/3DA6:	8529    	STA $29        ; Set palette
C3/3DA8:	A03A4E  	LDY #$4E3A     ; Text pointer
C3/3DAB:	20F902  	JSR $02F9      ; Draw "Memory"
C3/3DAE:	60      	RTS

Draw Reequip settings
C3/3DAF:	AD4E1D  	LDA $1D4E      ; Game options
C3/3DB2:	2910    	AND #$10       ; Optimum mode?
C3/3DB4:	F009    	BEQ $3DBF      ; Branch if so
C3/3DB6:	A928    	LDA #$28       ; Color: Gray
C3/3DB8:	20C83D  	JSR $3DC8      ; Draw "Optimum"
C3/3DBB:	A920    	LDA #$20       ; Color: User's
C3/3DBD:	8012    	BRA $3DD1      ; Draw "Empty"

Fork: Optimum mode
C3/3DBF:	A920    	LDA #$20       ; Color: User's
C3/3DC1:	20C83D  	JSR $3DC8      ; Draw "Optimum"
C3/3DC4:	A928    	LDA #$28       ; Color: Gray
C3/3DC6:	8009    	BRA $3DD1      ; Draw "Empty"

Fork: Draw "Optimum"
C3/3DC8:	8529    	STA $29        ; Set palette
C3/3DCA:	A0404E  	LDY #$4E40     ; Text pointer
C3/3DCD:	20F902  	JSR $02F9      ; Draw "Optimum"
C3/3DD0:	60      	RTS

Fork: Draw "Empty"
C3/3DD1:	8529    	STA $29        ; Set palette
C3/3DD3:	A0E44E  	LDY #$4EE4     ; Text pointer
C3/3DD6:	202603  	JSR $0326      ; Draw "Empty"
C3/3DD9:	60      	RTS

Draw Btn.Set settings
C3/3DDA:	AD541D  	LDA $1D54      ; Game options
C3/3DDD:	2940    	AND #$40       ; Default keys?
C3/3DDF:	F00C    	BEQ $3DED      ; Branch if so
C3/3DE1:	20EFAD  	JSR $ADEF      ; Apply user keys
C3/3DE4:	A928    	LDA #$28       ; Color: Gray
C3/3DE6:	20F93D  	JSR $3DF9      ; Draw "Normal"
C3/3DE9:	A920    	LDA #$20       ; Color: User's
C3/3DEB:	8015    	BRA $3E02      ; Draw "Custom"

Fork: Normal mode
C3/3DED:	20FCAD  	JSR $ADFC      ; Reset buttons
C3/3DF0:	A920    	LDA #$20       ; Color: User's
C3/3DF2:	20F93D  	JSR $3DF9      ; Draw "Normal"
C3/3DF5:	A928    	LDA #$28       ; Color: Gray
C3/3DF7:	8009    	BRA $3E02      ; Draw "Custom"

Fork: Draw "Normal"
C3/3DF9:	8529    	STA $29        ; Set palette
C3/3DFB:	A0484E  	LDY #$4E48     ; Text pointer
C3/3DFE:	20F902  	JSR $02F9      ; Draw "Normal"
C3/3E01:	60      	RTS

Fork: Draw "Custom"
C3/3E02:	8529    	STA $29        ; Set palette
C3/3E04:	A04F4E  	LDY #$4E4F     ; Text pointer
C3/3E07:	20F902  	JSR $02F9      ; Draw "Custom"
C3/3E0A:	60      	RTS

Draw Controller settings
C3/3E0B:	AD541D  	LDA $1D54      ; Solo mode?
C3/3E0E:	1009    	BPL $3E19      ; Branch if so
C3/3E10:	A928    	LDA #$28       ; Color: Gray
C3/3E12:	20223E  	JSR $3E22      ; Draw "Single"
C3/3E15:	A920    	LDA #$20       ; Color: User's
C3/3E17:	8012    	BRA $3E2B      ; Draw "Multiple"

Fork: Single mode
C3/3E19:	A920    	LDA #$20       ; Color: User's
C3/3E1B:	20223E  	JSR $3E22      ; Draw "Single"
C3/3E1E:	A928    	LDA #$28       ; Color: Gray
C3/3E20:	8009    	BRA $3E2B      ; Draw "Multiple"

Fork: Draw "Single"
C3/3E22:	8529    	STA $29        ; Set palette
C3/3E24:	A0ED4E  	LDY #$4EED     ; Text pointer
C3/3E27:	202603  	JSR $0326      ; Draw "Single"
C3/3E2A:	60      	RTS

Fork: Draw "Multiple"
C3/3E2B:	8529    	STA $29        ; Set palette
C3/3E2D:	A0564E  	LDY #$4E56     ; Text pointer
C3/3E30:	20F902  	JSR $02F9      ; Draw "Multiple"
C3/3E33:	60      	RTS

Handle Config changes with D-Pad
C3/3E34:	7B      	TDC            ; Clear A
C3/3E35:	A54B    	LDA $4B        ; Cursor slot
C3/3E37:	0A      	ASL A          ; Double it
C3/3E38:	AA      	TAX            ; Index it
C3/3E39:	A54A    	LDA $4A        ; On first page?
C3/3E3B:	F008    	BEQ $3E45      ; Branch if so
C3/3E3D:	DA      	PHX            ; ...
C3/3E3E:	200E0F  	JSR $0F0E      ; Sound: Cursor
C3/3E41:	FA      	PLX            ; ...
C3/3E42:	7C5C3E  	JMP ($3E5C,X)  ; Handle page 2
C3/3E45:	7C483E  	JMP ($3E48,X)  ; Handle page 1

Jump table for updating game options
C3/3E48:	683E    	; Bat.Mode
C3/3E4A:	813E    	; Bat.Speed
C3/3E4C:	B23E    	; Msg.Speed
C3/3E4E:	EF3E    	; Cmd.Set
C3/3E50:	083F    	; Gauge
C3/3E52:	213F    	; Sound
C3/3E54:	553F    	; Cursor
C3/3E56:	743F    	; Reequip
C3/3E58:	8D3F    	; Button
C3/3E5A:	A63F    	; Controller
C3/3E5C:	BF3F    	; Mag.Order
C3/3E5E:	ED3F    	; Window
C3/3E60:	2140    	; Viewed color
C3/3E62:	5C40    	; R
C3/3E64:	7B40    	; G
C3/3E66:	9A40    	; B

Update Bat.Mode
C3/3E68:	200E0F  	JSR $0F0E      ; Sound: Cursor
C3/3E6B:	A50B    	LDA $0B        ; Semi-auto keys
C3/3E6D:	8901    	BIT #$01       ; Pushing right?
C3/3E6F:	D008    	BNE $3E79      ; Branch if so
C3/3E71:	A908    	LDA #$08       ; Mode: Active
C3/3E73:	1C4D1D  	TRB $1D4D      ; Set option
C3/3E76:	4C603C  	JMP $3C60      ; Redraw text
C3/3E79:	A908    	LDA #$08       ; Mode: Wait
C3/3E7B:	0C4D1D  	TSB $1D4D      ; Set option
C3/3E7E:	4C603C  	JMP $3C60      ; Redraw text

Update Bat.Speed
C3/3E81:	200E0F  	JSR $0F0E      ; Sound: Cursor
C3/3E84:	AD4D1D  	LDA $1D4D      ; Game options
C3/3E87:	2907    	AND #$07       ; Get Bat.Speed
C3/3E89:	85E0    	STA $E0        ; Memorize it
C3/3E8B:	A50B    	LDA $0B        ; Semi-auto keys
C3/3E8D:	8901    	BIT #$01       ; Pushing right?
C3/3E8F:	F00B    	BEQ $3E9C      ; Branch if not

Fork: Bat.Speed +1
C3/3E91:	A5E0    	LDA $E0        ; Bat.Speed
C3/3E93:	C905    	CMP #$05       ; Rightmost?
C3/3E95:	F004    	BEQ $3E9B      ; Exit if so
C3/3E97:	E6E0    	INC $E0        ; Speed +1
C3/3E99:	800A    	BRA $3EA5      ; Apply changes
C3/3E9B:	60      	RTS

Fork: Bat.Speed -1
C3/3E9C:	A5E0    	LDA $E0        ; Leftmost speed?
C3/3E9E:	F004    	BEQ $3EA4      ; Exit if so
C3/3EA0:	C6E0    	DEC $E0        ; Speed -1
C3/3EA2:	8001    	BRA $3EA5      ; Apply changes
C3/3EA4:	60      	RTS

Fork: Apply Bat.Speed
C3/3EA5:	AD4D1D  	LDA $1D4D      ; Game options
C3/3EA8:	29F8    	AND #$F8       ; Clear Bat.Speed
C3/3EAA:	05E0    	ORA $E0        ; Set chosen speed
C3/3EAC:	8D4D1D  	STA $1D4D      ; Save changes
C3/3EAF:	4C8B3C  	JMP $3C8B      ; Redraw values

Update Msg.Speed
C3/3EB2:	200E0F  	JSR $0F0E      ; Sound: Cursor
C3/3EB5:	AD4D1D  	LDA $1D4D      ; Game options
C3/3EB8:	2970    	AND #$70       ; Get Msg.Speed
C3/3EBA:	4A      	LSR A          ; Put in b3-b5
C3/3EBB:	4A      	LSR A          ; Put in b2-b4
C3/3EBC:	4A      	LSR A          ; Put in b1-b3
C3/3EBD:	4A      	LSR A          ; Now 0-5
C3/3EBE:	85E0    	STA $E0        ; Memorize it
C3/3EC0:	A50B    	LDA $0B        ; Semi-auto keys
C3/3EC2:	8901    	BIT #$01       ; Pushing right?
C3/3EC4:	F00B    	BEQ $3ED1      ; Branch if not

Fork: Msg.Speed +1
C3/3EC6:	A5E0    	LDA $E0        ; Msg.Speed
C3/3EC8:	C905    	CMP #$05       ; Rightmost?
C3/3ECA:	F004    	BEQ $3ED0      ; Exit if so
C3/3ECC:	E6E0    	INC $E0        ; Speed +1
C3/3ECE:	800A    	BRA $3EDA      ; Apply changes
C3/3ED0:	60      	RTS

Fork: Msg.Speed -1
C3/3ED1:	A5E0    	LDA $E0        ; Leftmost speed?
C3/3ED3:	F004    	BEQ $3ED9      ; Exit if so
C3/3ED5:	C6E0    	DEC $E0        ; Speed -1
C3/3ED7:	8001    	BRA $3EDA      ; Apply changes
C3/3ED9:	60      	RTS

Fork: Apply Msg.Speed
C3/3EDA:	A5E0    	LDA $E0        ; Chosen speed
C3/3EDC:	0A      	ASL A          ; x2
C3/3EDD:	0A      	ASL A          ; x4
C3/3EDE:	0A      	ASL A          ; x8
C3/3EDF:	0A      	ASL A          ; x16
C3/3EE0:	85E0    	STA $E0        ; Save changes
C3/3EE2:	AD4D1D  	LDA $1D4D      ; Game options
C3/3EE5:	298F    	AND #$8F       ; Clear Msg.Speed
C3/3EE7:	05E0    	ORA $E0        ; Set chosen speed
C3/3EE9:	8D4D1D  	STA $1D4D      ; Save changes
C3/3EEC:	4CC63C  	JMP $3CC6      ; Redraw values

Update Cmd.Set mode
C3/3EEF:	200E0F  	JSR $0F0E      ; Sound: Cursor
C3/3EF2:	A50B    	LDA $0B        ; Semi-auto keys
C3/3EF4:	8901    	BIT #$01       ; Pushing right?
C3/3EF6:	D008    	BNE $3F00      ; Branch if so
C3/3EF8:	A980    	LDA #$80       ; Mode: Window
C3/3EFA:	1C4D1D  	TRB $1D4D      ; Set option
C3/3EFD:	4C073D  	JMP $3D07      ; Redraw options
C3/3F00:	A980    	LDA #$80       ; Mode: Short
C3/3F02:	0C4D1D  	TSB $1D4D      ; Set option
C3/3F05:	4C073D  	JMP $3D07      ; Redraw options

Update gauge mode
C3/3F08:	200E0F  	JSR $0F0E      ; Sound: Cursor
C3/3F0B:	A50B    	LDA $0B        ; Semi-auto keys
C3/3F0D:	8901    	BIT #$01       ; Pushing right?
C3/3F0F:	D008    	BNE $3F19      ; Branch if so
C3/3F11:	A980    	LDA #$80       ; Gauge: On
C3/3F13:	1C4E1D  	TRB $1D4E      ; Set option
C3/3F16:	4C303D  	JMP $3D30      ; Redraw options
C3/3F19:	A980    	LDA #$80       ; Gauge: Off
C3/3F1B:	0C4E1D  	TSB $1D4E      ; Set option
C3/3F1E:	4C303D  	JMP $3D30      ; Redraw options

Update sound mode
C3/3F21:	A50B    	LDA $0B        ; Semi-auto keys
C3/3F23:	8901    	BIT #$01       ; Pushing right?
C3/3F25:	D00F    	BNE $3F36      ; Branch if so
C3/3F27:	7B      	TDC            ; Volume: Stereo
C3/3F28:	20463F  	JSR $3F46      ; Adjust volume
C3/3F2B:	A920    	LDA #$20       ; Mode: Stereo
C3/3F2D:	1C4E1D  	TRB $1D4E      ; Set option
C3/3F30:	200E0F  	JSR $0F0E      ; Sound: Cursor
C3/3F33:	4C593D  	JMP $3D59      ; Redraw options
C3/3F36:	A9FF    	LDA #$FF       ; Volume: Mono
C3/3F38:	20463F  	JSR $3F46      ; Adjust volume
C3/3F3B:	A920    	LDA #$20       ; Mono flag
C3/3F3D:	0C4E1D  	TSB $1D4E      ; Set mono mode
C3/3F40:	200E0F  	JSR $0F0E      ; Sound: Cursor
C3/3F43:	4C593D  	JMP $3D59      ; Redraw options

Adjust volume based on sound mode (stereo = 0)
C3/3F46:	8F011300	STA $001301    ; Set sound mode
C3/3F4A:	A9F3    	LDA #$F3       ; SPC code: $0D61
C3/3F4C:	8F001300	STA $001300    ; Set SPC command
C3/3F50:	220400C5	JSL $C50004    ; Update ports
C3/3F54:	60      	RTS

Update Cursor mode
C3/3F55:	200E0F  	JSR $0F0E      ; Sound: Cursor
C3/3F58:	A50B    	LDA $0B        ; Semi-auto keys
C3/3F5A:	8901    	BIT #$01       ; Pushing right?
C3/3F5C:	D00B    	BNE $3F69      ; Branch if so
C3/3F5E:	20E94D  	JSR $4DE9      ; Forget positions
C3/3F61:	A940    	LDA #$40       ; Mode: Reset
C3/3F63:	1C4E1D  	TRB $1D4E      ; Set option
C3/3F66:	4C843D  	JMP $3D84      ; Redraw options
C3/3F69:	A940    	LDA #$40       ; Mode: Memory
C3/3F6B:	0C4E1D  	TSB $1D4E      ; Set option
C3/3F6E:	20FC77  	JSR $77FC      ; Reset positions
C3/3F71:	4C843D  	JMP $3D84      ; Redraw options

Update Reequip mode
C3/3F74:	200E0F  	JSR $0F0E      ; Sound: Cursor
C3/3F77:	A50B    	LDA $0B        ; Semi-auto keys
C3/3F79:	8901    	BIT #$01       ; Pushing right?
C3/3F7B:	D008    	BNE $3F85      ; Branch if so
C3/3F7D:	A910    	LDA #$10       ; Mode: Optimum
C3/3F7F:	1C4E1D  	TRB $1D4E      ; Set option
C3/3F82:	4CAF3D  	JMP $3DAF      ; Redraw options
C3/3F85:	A910    	LDA #$10       ; Mode: Empty
C3/3F87:	0C4E1D  	TSB $1D4E      ; Set option
C3/3F8A:	4CAF3D  	JMP $3DAF      ; Redraw options

Update Button Settings mode
C3/3F8D:	200E0F  	JSR $0F0E      ; Sound: Cursor
C3/3F90:	A50B    	LDA $0B        ; Semi-auto keys
C3/3F92:	8901    	BIT #$01       ; Pushing right?
C3/3F94:	D008    	BNE $3F9E      ; Branch if so
C3/3F96:	A940    	LDA #$40       ; Mode: Normal
C3/3F98:	1C541D  	TRB $1D54      ; Set option
C3/3F9B:	4CDA3D  	JMP $3DDA      ; Redraw options
C3/3F9E:	A940    	LDA #$40       ; Mode: Custom
C3/3FA0:	0C541D  	TSB $1D54      ; Set option
C3/3FA3:	4CDA3D  	JMP $3DDA      ; Redraw options

Update Controller mode
C3/3FA6:	200E0F  	JSR $0F0E      ; Sound: Cursor
C3/3FA9:	A50B    	LDA $0B        ; Semi-auto keys
C3/3FAB:	8901    	BIT #$01       ; Pushing right?
C3/3FAD:	D008    	BNE $3FB7      ; Branch if so
C3/3FAF:	A980    	LDA #$80       ; Mode: Single
C3/3FB1:	1C541D  	TRB $1D54      ; Set option
C3/3FB4:	4C0B3E  	JMP $3E0B      ; Redraw options
C3/3FB7:	A980    	LDA #$80       ; Mode: Multiple
C3/3FB9:	0C541D  	TSB $1D54      ; Set option
C3/3FBC:	4C0B3E  	JMP $3E0B      ; Redraw options

Update Mag.Order
C3/3FBF:	AD541D  	LDA $1D54      ; Game options
C3/3FC2:	2907    	AND #$07       ; Get Mag.Order
C3/3FC4:	85E0    	STA $E0        ; Memorize it
C3/3FC6:	A50B    	LDA $0B        ; Semi-auto keys
C3/3FC8:	8901    	BIT #$01       ; Pushing right?
C3/3FCA:	F00B    	BEQ $3FD7      ; Branch if not

Fork: Mag.Order +1
C3/3FCC:	A5E0    	LDA $E0        ; Mag.Order
C3/3FCE:	C905    	CMP #$05       ; Rightmost?
C3/3FD0:	F004    	BEQ $3FD6      ; Exit if so
C3/3FD2:	E6E0    	INC $E0        ; Order +1
C3/3FD4:	800A    	BRA $3FE0      ; Apply changes
C3/3FD6:	60      	RTS

Fork: Mag.Order -1
C3/3FD7:	A5E0    	LDA $E0        ; On "1" now?
C3/3FD9:	F004    	BEQ $3FDF      ; Exit if so
C3/3FDB:	C6E0    	DEC $E0        ; Order -1
C3/3FDD:	8001    	BRA $3FE0      ; Apply changes
C3/3FDF:	60      	RTS

Fork: Apply Mag.Order
C3/3FE0:	AD541D  	LDA $1D54      ; Game options
C3/3FE3:	29F8    	AND #$F8       ; Clear Mag.Order
C3/3FE5:	05E0    	ORA $E0        ; Set chosen one
C3/3FE7:	8D541D  	STA $1D54      ; Save changes
C3/3FEA:	4C1D41  	JMP $411D      ; Redraw text

Handle wallpaper selection
C3/3FED:	AD4E1D  	LDA $1D4E      ; Game options
C3/3FF0:	290F    	AND #$0F       ; Get wallpaper
C3/3FF2:	85E0    	STA $E0        ; Memorize it
C3/3FF4:	A50B    	LDA $0B        ; Semi-auto keys
C3/3FF6:	8901    	BIT #$01       ; Pushing right?
C3/3FF8:	F00B    	BEQ $4005      ; Branch if not

Fork: Pushing right
C3/3FFA:	A5E0    	LDA $E0        ; Wallpaper
C3/3FFC:	C907    	CMP #$07       ; Rightmost?
C3/3FFE:	F004    	BEQ $4004      ; Exit if so
C3/4000:	E6E0    	INC $E0        ; Skin number +1
C3/4002:	800A    	BRA $400E      ; Apply changes
C3/4004:	60      	RTS

Fork: Pushing left
C3/4005:	A5E0    	LDA $E0        ; On "1" now?
C3/4007:	F004    	BEQ $400D      ; Exit if so
C3/4009:	C6E0    	DEC $E0        ; Skin number -1
C3/400B:	8001    	BRA $400E      ; Apply changes
C3/400D:	60      	RTS

Fork: Apply wallpaper
C3/400E:	AD4E1D  	LDA $1D4E      ; Game options
C3/4011:	29F0    	AND #$F0       ; Clear skin
C3/4013:	05E0    	ORA $E0        ; Set chosen one
C3/4015:	8D4E1D  	STA $1D4E      ; Save changes
C3/4018:	20CB41  	JSR $41CB      ; Redraw values
C3/401B:	205B3B  	JSR $3B5B      ; Refresh skin
C3/401E:	4CA442  	JMP $42A4      ; Draw RGB info

Change viewed color in Config
C3/4021:	AD541D  	LDA $1D54      ; Game options
C3/4024:	2938    	AND #$38       ; Viewed color
C3/4026:	4A      	LSR A          ; Put in b2-b4
C3/4027:	4A      	LSR A          ; Put in b1-b3
C3/4028:	4A      	LSR A          ; Now 0-7
C3/4029:	85E0    	STA $E0        ; Memorize it
C3/402B:	A50B    	LDA $0B        ; Semi-auto keys
C3/402D:	8901    	BIT #$01       ; Pushing right?
C3/402F:	F00B    	BEQ $403C      ; Branch if not

Fork: Move to next color
C3/4031:	A5E0    	LDA $E0        ; Viewed color
C3/4033:	C907    	CMP #$07       ; Rightmost?
C3/4035:	F004    	BEQ $403B      ; Exit if so
C3/4037:	E6E0    	INC $E0        ; Color number +1
C3/4039:	800A    	BRA $4045      ; Apply changes
C3/403B:	60      	RTS

Fork: Move to preceding color
C3/403C:	A5E0    	LDA $E0        ; Editing font?
C3/403E:	F004    	BEQ $4044      ; Exit if so
C3/4040:	C6E0    	DEC $E0        ; Color number -1
C3/4042:	8001    	BRA $4045      ; Apply changes
C3/4044:	60      	RTS

Fork: Apply selection
C3/4045:	A5E0    	LDA $E0        ; Viewed color
C3/4047:	0A      	ASL A          ; Put in b1-b3
C3/4048:	0A      	ASL A          ; Put in b2-b4
C3/4049:	0A      	ASL A          ; Put in b3-b5
C3/404A:	85E0    	STA $E0        ; Save changes
C3/404C:	AD541D  	LDA $1D54      ; Game options
C3/404F:	29C7    	AND #$C7       ; Clear vwd color
C3/4051:	05E0    	ORA $E0        ; Set new one
C3/4053:	8D541D  	STA $1D54      ; Save changes
C3/4056:	201442  	JSR $4214      ; Redraw arrow
C3/4059:	4CA442  	JMP $42A4      ; Draw RGB info

Update red component of font or skin color
C3/405C:	20DF42  	JSR $42DF      ; Separate RGB
C3/405F:	A50B    	LDA $0B        ; Semi-auto keys
C3/4061:	8901    	BIT #$01       ; Pushing right?
C3/4063:	F00A    	BEQ $406F      ; Branch if not
C3/4065:	A5E2    	LDA $E2        ; Red
C3/4067:	C91F    	CMP #$1F       ; 31?
C3/4069:	F00A    	BEQ $4075      ; Branch if so
C3/406B:	E6E2    	INC $E2        ; Red +1
C3/406D:	8006    	BRA $4075      ; Apply changes
C3/406F:	A5E2    	LDA $E2        ; Red
C3/4071:	F002    	BEQ $4075      ; Branch if 0
C3/4073:	C6E2    	DEC $E2        ; Red -1
C3/4075:	200243  	JSR $4302      ; Merge RGB
C3/4078:	4CE440  	JMP $40E4      ; Apply changes

Update green component of font or skin color
C3/407B:	20DF42  	JSR $42DF      ; Separate RGB
C3/407E:	A50B    	LDA $0B        ; Semi-auto keys
C3/4080:	8901    	BIT #$01       ; Pushing right?
C3/4082:	F00A    	BEQ $408E      ; Branch if not
C3/4084:	A5E1    	LDA $E1        ; Green
C3/4086:	C91F    	CMP #$1F       ; 31?
C3/4088:	F00A    	BEQ $4094      ; Branch if so
C3/408A:	E6E1    	INC $E1        ; Green +1
C3/408C:	8006    	BRA $4094      ; Apply changes
C3/408E:	A5E1    	LDA $E1        ; Green
C3/4090:	F002    	BEQ $4094      ; Branch if 0
C3/4092:	C6E1    	DEC $E1        ; Green -1
C3/4094:	200243  	JSR $4302      ; Merge RGB
C3/4097:	4CE440  	JMP $40E4      ; Apply changes

Update blue component of font or skin color
C3/409A:	20DF42  	JSR $42DF      ; Separate RGB
C3/409D:	A50B    	LDA $0B        ; Semi-auto keys
C3/409F:	8901    	BIT #$01       ; Pushing right?
C3/40A1:	F00A    	BEQ $40AD      ; Branch if not
C3/40A3:	A5E0    	LDA $E0        ; Blue
C3/40A5:	C91F    	CMP #$1F       ; 31?
C3/40A7:	F00A    	BEQ $40B3      ; Branch if so
C3/40A9:	E6E0    	INC $E0        ; Blue +1
C3/40AB:	8006    	BRA $40B3      ; Apply changes
C3/40AD:	A5E0    	LDA $E0        ; Blue
C3/40AF:	F002    	BEQ $40B3      ; Branch if 0
C3/40B1:	C6E0    	DEC $E0        ; Blue -1
C3/40B3:	200243  	JSR $4302      ; Merge RGB
C3/40B6:	4CE440  	JMP $40E4      ; Apply changes

Apply player's font color
C3/40B9:	C220    	REP #$20       ; 16-bit A
C3/40BB:	AD551D  	LDA $1D55      ; User font color
C3/40BE:	8F4F307E	STA $7E304F    ; Set for FWF
C3/40C2:	8F73307E	STA $7E3073    ; Set VWF color A
C3/40C6:	8F77307E	STA $7E3077    ; Set VWF color B
C3/40CA:	E220    	SEP #$20       ; 8-bit A
C3/40CC:	60      	RTS

Apply player's skin colors after changes
C3/40CD:	A600    	LDX $00        ; Dst index: 0
C3/40CF:	C220    	REP #$20       ; 16-bit A
C3/40D1:	B9571D  	LDA $1D57,Y    ; Player color
C3/40D4:	9F2B317E	STA $7E312B,X  ; Put in palette
C3/40D8:	C8      	INY            ; Src index +1
C3/40D9:	C8      	INY            ; Src index +1
C3/40DA:	E8      	INX            ; Dst index +1
C3/40DB:	E8      	INX            ; Dst index +1
C3/40DC:	E00E00  	CPX #$000E     ; Done 7 colors?
C3/40DF:	D0F0    	BNE $40D1      ; Loop if not
C3/40E1:	E220    	SEP #$20       ; 8-bit A
C3/40E3:	60      	RTS

Apply player's skin or font colors after changes
C3/40E4:	7B      	TDC            ; Clear A
C3/40E5:	AD4E1D  	LDA $1D4E      ; Game options
C3/40E8:	290F    	AND #$0F       ; Get wallpaper
C3/40EA:	8D0242  	STA $4202      ; Set multiplicand
C3/40ED:	A90E    	LDA #$0E       ; Palette size
C3/40EF:	8D0342  	STA $4203      ; Set multiplier
C3/40F2:	AD541D  	LDA $1D54      ; Game options
C3/40F5:	2938    	AND #$38       ; Viewed color
C3/40F7:	F019    	BEQ $4112      ; Branch if font
C3/40F9:	4A      	LSR A          ; Put in b2-b4
C3/40FA:	4A      	LSR A          ; Put in b1-b3
C3/40FB:	18      	CLC            ; Prepare ADC
C3/40FC:	6D1642  	ADC $4216      ; Add product
C3/40FF:	AA      	TAX            ; Index sum
C3/4100:	A59A    	LDA $9A        ; New color LB
C3/4102:	9D551D  	STA $1D55,X    ; Set as user's
C3/4105:	A59B    	LDA $9B        ; New color HB
C3/4107:	9D561D  	STA $1D56,X    ; Set as user's
C3/410A:	AC1642  	LDY $4216      ; Palette index
C3/410D:	20CD40  	JSR $40CD      ; Recolor skin
C3/4110:	8008    	BRA $411A      ; Redraw RGB info

Fork: Font
C3/4112:	A49A    	LDY $9A        ; Updated color
C3/4114:	8C551D  	STY $1D55      ; Put in options
C3/4117:	20B940  	JSR $40B9      ; Put in palettes
C3/411A:	4CA442  	JMP $42A4      ; Redraw RGB info

Draw Mag.Order settings
C3/411D:	A928    	LDA #$28       ; Palette 2
C3/411F:	8529    	STA $29        ; Color: Gray
C3/4121:	A07A4F  	LDY #$4F7A     ; Text pointer
C3/4124:	20F902  	JSR $02F9      ; Draw 1-6 in gray
C3/4127:	A920    	LDA #$20       ; Palette 0
C3/4129:	8529    	STA $29        ; Color: User's
C3/412B:	7B      	TDC            ; Clear A
C3/412C:	AD541D  	LDA $1D54      ; Game options
C3/412F:	2907    	AND #$07       ; Get Mag.Order
C3/4131:	0A      	ASL A          ; Double it
C3/4132:	AA      	TAX            ; Index it
C3/4133:	C220    	REP #$20       ; 16-bit A
C3/4135:	BF4F41C3	LDA $C3414F,X  ; Tilemap ptr
C3/4139:	85F7    	STA $F7        ; Set position
C3/413B:	E220    	SEP #$20       ; 8-bit A
C3/413D:	AD541D  	LDA $1D54      ; Game options
C3/4140:	2907    	AND #$07       ; Get Mag.Order
C3/4142:	18      	CLC            ; ...
C3/4143:	6954    	ADC #$54       ; Convert to text
C3/4145:	85F9    	STA $F9        ; Add to string
C3/4147:	64FA    	STZ $FA        ; End string
C3/4149:	20F741  	JSR $41F7      ; Draw user value
C3/414C:	4C5B41  	JMP $415B      ; Draw spell types

Tilemap pointers for Mag.Order values
C3/414F:	A541    	; 1
C3/4151:	A941    	; 2
C3/4153:	AD41    	; 3
C3/4155:	B141    	; 4
C3/4157:	B541    	; 5
C3/4159:	B941    	; 6

Draw all three Mag.Order spell types
C3/415B:	64FD    	STZ $FD        ; Set terminator
C3/415D:	7B      	TDC            ; Clear A
C3/415E:	AD541D  	LDA $1D54      ; Game options
C3/4161:	2907    	AND #$07       ; Get Mag.Order
C3/4163:	0A      	ASL A          ; x2
C3/4164:	0A      	ASL A          ; x4
C3/4165:	AA      	TAX            ; Index it
C3/4166:	A00300  	LDY #$0003     ; Strings: 3
C3/4169:	5A      	PHY            ; Save counter
C3/416A:	DA      	PHX            ; Save index
C3/416B:	207541  	JSR $4175      ; Draw string
C3/416E:	FA      	PLX            ; String index
C3/416F:	7A      	PLY            ; Strings left
C3/4170:	E8      	INX            ; Point to next
C3/4171:	88      	DEY            ; One less left
C3/4172:	D0F5    	BNE $4169      ; Loop till last
C3/4174:	60      	RTS

Draw current Mag.Order spell type
C3/4175:	BFB341C3	LDA $C341B3,X  ; Text pointer
C3/4179:	AA      	TAX            ; Index it
C3/417A:	BFA74FC3	LDA $C34FA7,X  ; Letter 1
C3/417E:	85F9    	STA $F9        ; To string
C3/4180:	BFA84FC3	LDA $C34FA8,X  ; Letter 2
C3/4184:	85FA    	STA $FA        ; To string
C3/4186:	BFA94FC3	LDA $C34FA9,X  ; Letter 3
C3/418A:	85FB    	STA $FB        ; To string
C3/418C:	BFAA4FC3	LDA $C34FAA,X  ; Letter 4
C3/4190:	85FC    	STA $FC        ; To string
C3/4192:	88      	DEY            ; Lines left -1
C3/4193:	98      	TYA            ; Put it in A
C3/4194:	0A      	ASL A          ; Double it
C3/4195:	AA      	TAX            ; Index it
C3/4196:	C220    	REP #$20       ; 16-bit A
C3/4198:	BFAD41C3	LDA $C341AD,X  ; Tilemap ptr
C3/419C:	85F7    	STA $F7        ; Set position
C3/419E:	E220    	SEP #$20       ; 8-bit A
C3/41A0:	A0F700  	LDY #$00F7     ; 00/00F7
C3/41A3:	84E7    	STY $E7        ; Set src LBs
C3/41A5:	A900    	LDA #$00       ; Bank: 00
C3/41A7:	85E9    	STA $E9        ; Set src HB
C3/41A9:	202C03  	JSR $032C      ; Draw string
C3/41AC:	60      	RTS

Tilemap pointers for Mag.Order strings
C3/41AD:	E942    	; Spell type C
C3/41AF:	6942    	; Spell type B
C3/41B1:	E941    	; Spell type A

Relative pointers to Mag.Order strings
C3/41B3:	00 04 08	; Healing, Attack, Effect
C3/41B6:	00      	; ...
C3/41B7:	00 08 04	; Healing, Effect, Attack
C3/41BA:	00      	; ...
C3/41BB:	04 08 00	; Attack, Effect, Healing
C3/41BE:	00      	; ...
C3/41BF:	04 00 08	; Attack, Healing, Effect
C3/41C2:	00      	; ...
C3/41C3:	08 00 04	; Effect, Healing, Attack
C3/41C6:	00      	; ...
C3/41C7:	08 04 00	; Effect, Attack, Healing
C3/41CA:	00      	; ...

Draw wallpaper values
C3/41CB:	A928    	LDA #$28       ; Palette 2
C3/41CD:	8529    	STA $29        ; Color: Gray
C3/41CF:	A0684F  	LDY #$4F68     ; Text pointer
C3/41D2:	20F902  	JSR $02F9      ; Draw 1-8 in gray
C3/41D5:	A920    	LDA #$20       ; Palette 0
C3/41D7:	8529    	STA $29        ; Color: User's
C3/41D9:	7B      	TDC            ; Clear A
C3/41DA:	AD4E1D  	LDA $1D4E      ; Game options
C3/41DD:	290F    	AND #$0F       ; Get wallpaper
C3/41DF:	0A      	ASL A          ; Double it
C3/41E0:	AA      	TAX            ; Index it
C3/41E1:	C220    	REP #$20       ; 16-bit A
C3/41E3:	BF0442C3	LDA $C34204,X  ; Tilemap ptr
C3/41E7:	85F7    	STA $F7        ; Set position
C3/41E9:	E220    	SEP #$20       ; 8-bit A
C3/41EB:	AD4E1D  	LDA $1D4E      ; Game options
C3/41EE:	290F    	AND #$0F       ; Get wallpaper
C3/41F0:	18      	CLC            ; ...
C3/41F1:	6954    	ADC #$54       ; Convert to text
C3/41F3:	85F9    	STA $F9        ; Add to string
C3/41F5:	64FA    	STZ $FA        ; End string
C3/41F7:	A0F700  	LDY #$00F7     ; 00/00F7
C3/41FA:	84E7    	STY $E7        ; Set src LBs
C3/41FC:	A900    	LDA #$00       ; Bank: 00
C3/41FE:	85E9    	STA $E9        ; Set src HB
C3/4200:	20FF02  	JSR $02FF      ; Draw user value
C3/4203:	60      	RTS

Tilemap pointers for wallpaper values
C3/4204:	A543    	; 1
C3/4206:	A943    	; 2
C3/4208:	AD43    	; 3
C3/420A:	B143    	; 4
C3/420C:	B543    	; 5
C3/420E:	B943    	; 6
C3/4210:	BD43    	; 7
C3/4212:	C143    	; 8

Draw wallpaper palette and arrow in Config
C3/4214:	A93C    	LDA #$3C       ; Palette 7
C3/4216:	8529    	STA $29        ; Set tile info
C3/4218:	A09D4F  	LDY #$4F9D     ; Text pointer
C3/421B:	20F902  	JSR $02F9      ; Draw palette
C3/421E:	A07E42  	LDY #$427E     ; Text pointer
C3/4221:	20F902  	JSR $02F9      ; Erase arrow
C3/4224:	7B      	TDC            ; Clear A
C3/4225:	AD541D  	LDA $1D54      ; Game options
C3/4228:	2938    	AND #$38       ; Viewed color
C3/422A:	F026    	BEQ $4252      ; Branch if font
C3/422C:	4A      	LSR A          ; Put in b2-b4
C3/422D:	4A      	LSR A          ; Put in b1-b3
C3/422E:	AA      	TAX            ; Index it
C3/422F:	A920    	LDA #$20       ; Palette 0
C3/4231:	8529    	STA $29        ; Color: User's
C3/4233:	C220    	REP #$20       ; 16-bit A
C3/4235:	BF6E42C3	LDA $C3426E,X  ; Text pointer
C3/4239:	85E7    	STA $E7        ; Set src LBs
C3/423B:	E220    	SEP #$20       ; 8-bit A
C3/423D:	A9C3    	LDA #$C3       ; Bank: C3
C3/423F:	85E9    	STA $E9        ; Set src HB
C3/4241:	20FF02  	JSR $02FF      ; Draw arrow
C3/4244:	A928    	LDA #$28       ; Palette 2
C3/4246:	8529    	STA $29        ; Color: Gray
C3/4248:	206042  	JSR $4260      ; Draw "Font"
C3/424B:	A920    	LDA #$20       ; Palette 0
C3/424D:	8529    	STA $29        ; Color: User's
C3/424F:	4C6742  	JMP $4267      ; Draw "Window"

Fork: Viewing font
C3/4252:	A920    	LDA #$20       ; Palette 0
C3/4254:	8529    	STA $29        ; Color: User's
C3/4256:	206042  	JSR $4260      ; Draw "Font"
C3/4259:	A928    	LDA #$28       ; Palette 2
C3/425B:	8529    	STA $29        ; Color: Gray
C3/425D:	4C6742  	JMP $4267      ; Draw "Window"

Fork: Draw "Font"
C3/4260:	A0884F  	LDY #$4F88     ; Text pointer
C3/4263:	20F902  	JSR $02F9      ; Draw "Font"
C3/4266:	60      	RTS

Fork: Draw "Window"
C3/4267:	A08F4F  	LDY #$4F8F     ; Text pointer
C3/426A:	202603  	JSR $0326      ; Draw "Window"
C3/426D:	60      	RTS

Text pointers for color selection arrow
C3/426E:	7E42    	; Font...
C3/4270:	8842    	; Window 1
C3/4272:	8C42    	; Window 2
C3/4274:	9042    	; Window 3
C3/4276:	9442    	; Window 4
C3/4278:	9842    	; Window 5
C3/427A:	9C42    	; Window 6
C3/427C:	A042    	; Window 7

Positioned spaces for blanking color selection arrow
C3/427E:	F544 FFFFFFFFFFFFFF00

Positioned arrows for wallpaper colors
C3/4288:	F544 D400	; Color 1
C3/428C:	F744 D400	; Color 2
C3/4290:	F944 D400	; Color 3
C3/4294:	FB44 D400	; Color 4
C3/4298:	FD44 D400	; Color 5
C3/429C:	FF44 D400	; Color 6
C3/42A0:	0145 D400	; Color 7

Draw RGB gauges and values in Config menu
C3/42A4:	20243A  	JSR $3A24      ; Reset gauges
C3/42A7:	7B      	TDC            ; Clear A
C3/42A8:	AD4E1D  	LDA $1D4E      ; Game options
C3/42AB:	290F    	AND #$0F       ; Get wallpaper
C3/42AD:	8D0242  	STA $4202      ; Set multiplicand
C3/42B0:	A90E    	LDA #$0E       ; Palette size
C3/42B2:	8D0342  	STA $4203      ; Set multiplier
C3/42B5:	AD541D  	LDA $1D54      ; Game options
C3/42B8:	2938    	AND #$38       ; Viewed color
C3/42BA:	F00C    	BEQ $42C8      ; Branch if font
C3/42BC:	4A      	LSR A          ; Put in b2-b4
C3/42BD:	4A      	LSR A          ; Put in b1-b3
C3/42BE:	18      	CLC            ; ...
C3/42BF:	6D1642  	ADC $4216      ; Add product
C3/42C2:	AA      	TAX            ; Index sum
C3/42C3:	BC551D  	LDY $1D55,X    ; Skin color
C3/42C6:	8003    	BRA $42CB      ; Skip a line
C3/42C8:	AC551D  	LDY $1D55      ; Font color
C3/42CB:	849A    	STY $9A        ; Memorize it
C3/42CD:	20DF42  	JSR $42DF      ; Separate RGB
C3/42D0:	204443  	JSR $4344      ; Draw B info
C3/42D3:	20DF42  	JSR $42DF      ; Separate RGB
C3/42D6:	203143  	JSR $4331      ; Draw G info
C3/42D9:	20DF42  	JSR $42DF      ; Separate RGB
C3/42DC:	4C1E43  	JMP $431E      ; Draw R info

Separate RGB components for color in Config menu
C3/42DF:	A49A    	LDY $9A        ; Color
C3/42E1:	84E7    	STY $E7        ; Memorize it
C3/42E3:	A5E7    	LDA $E7        ; Color LB
C3/42E5:	291F    	AND #$1F       ; Get red
C3/42E7:	85E2    	STA $E2        ; Memorize it
C3/42E9:	A5E8    	LDA $E8        ; Color HB
C3/42EB:	297C    	AND #$7C       ; Get blue
C3/42ED:	4A      	LSR A          ; Shift bits
C3/42EE:	4A      	LSR A          ; Now 0-31
C3/42EF:	85E0    	STA $E0        ; Memorize it
C3/42F1:	C220    	REP #$20       ; 16-bit A
C3/42F3:	A5E7    	LDA $E7        ; Color
C3/42F5:	29E003  	AND #$03E0     ; Get green
C3/42F8:	4A      	LSR A          ; 2
C3/42F9:	4A      	LSR A          ; 4
C3/42FA:	4A      	LSR A          ; 8
C3/42FB:	4A      	LSR A          ; 16
C3/42FC:	4A      	LSR A          ; Now 0-31
C3/42FD:	E220    	SEP #$20       ; 8-bit A
C3/42FF:	85E1    	STA $E1        ; Memorize it
C3/4301:	60      	RTS

Merge RGB components of updated color
C3/4302:	A5E0    	LDA $E0        ; Blue
C3/4304:	0A      	ASL A          ; x2
C3/4305:	0A      	ASL A          ; x4
C3/4306:	85E8    	STA $E8        ; Memorize it
C3/4308:	A5E2    	LDA $E2        ; Red
C3/430A:	85E7    	STA $E7        ; Memorize it
C3/430C:	7B      	TDC            ; Clear A
C3/430D:	A5E1    	LDA $E1        ; Green
C3/430F:	C220    	REP #$20       ; 16-bit A
C3/4311:	0A      	ASL A          ; x2
C3/4312:	0A      	ASL A          ; x4
C3/4313:	0A      	ASL A          ; x8
C3/4314:	0A      	ASL A          ; x16
C3/4315:	0A      	ASL A          ; x32
C3/4316:	05E7    	ORA $E7        ; Add R&B
C3/4318:	8D9A00  	STA $009A      ; Memorize it
C3/431B:	E220    	SEP #$20       ; 8-bit A
C3/431D:	60      	RTS

Draw value and fill gauge for red component
C3/431E:	C220    	REP #$20       ; 16-bit A
C3/4320:	A92F45  	LDA #$452F     ; Tilemap ptr
C3/4323:	8F899E7E	STA $7E9E89    ; Set gauge pos
C3/4327:	E220    	SEP #$20       ; 8-bit A
C3/4329:	A5E2    	LDA $E2        ; Red value
C3/432B:	A22945  	LDX #$4529     ; Tilemap ptr
C3/432E:	4C5743  	JMP $4357      ; Draw text

Draw value and fill gauge for green component
C3/4331:	C220    	REP #$20       ; 16-bit A
C3/4333:	A9AF45  	LDA #$45AF     ; Tilemap ptr
C3/4336:	8F899E7E	STA $7E9E89    ; Set gauge pos
C3/433A:	E220    	SEP #$20       ; 8-bit A
C3/433C:	A5E1    	LDA $E1        ; Green value
C3/433E:	A2A945  	LDX #$45A9     ; Tilemap ptr
C3/4341:	4C5743  	JMP $4357      ; Draw text

Draw value and fill gauge for blue component
C3/4344:	C220    	REP #$20       ; 16-bit A
C3/4346:	A92F46  	LDA #$462F     ; Tilemap ptr
C3/4349:	8F899E7E	STA $7E9E89    ; Set gauge pos
C3/434D:	E220    	SEP #$20       ; 8-bit A
C3/434F:	A5E0    	LDA $E0        ; Blue value
C3/4351:	A22946  	LDX #$4629     ; Tilemap ptr
C3/4354:	4C5743  	JMP $4357      ; Draw text

Draw value and fill gauge for color component
C3/4357:	48      	PHA            ; Save value
C3/4358:	48      	PHA            ; Do it again
C3/4359:	DA      	PHX            ; Save position
C3/435A:	206305  	JSR $0563      ; Convert value
C3/435D:	FA      	PLX            ; Text position
C3/435E:	A920    	LDA #$20       ; Palette 0
C3/4360:	8529    	STA $29        ; Color: User's
C3/4362:	203905  	JSR $0539      ; Draw 2 digits
C3/4365:	A28B9E  	LDX #$9E8B     ; 7E/9E8B
C3/4368:	8E8121  	STX $2181      ; Set WRAM LBs
C3/436B:	68      	PLA            ; Color value
C3/436C:	EB      	XBA            ; Switch to HB
C3/436D:	A500    	LDA $00        ; Clear it
C3/436F:	EB      	XBA            ; Switch to LB
C3/4370:	4A      	LSR A          ; 2
C3/4371:	4A      	LSR A          ; 4
C3/4372:	AA      	TAX            ; Set counter
C3/4373:	F008    	BEQ $437D      ; Branch if 0
C3/4375:	A918    	LDA #$18       ; Full tile char
C3/4377:	8D8021  	STA $2180      ; Add to string
C3/437A:	CA      	DEX            ; One less tile
C3/437B:	D0F8    	BNE $4375      ; Loop till last
C3/437D:	68      	PLA            ; Color component
C3/437E:	2903    	AND #$03       ; Extremity size
C3/4380:	AA      	TAX            ; Index it
C3/4381:	BF9F43C3	LDA $C3439F,X  ; Partial tile
C3/4385:	8D8021  	STA $2180      ; Add to string
C3/4388:	9C8021  	STZ $2180      ; End string
C3/438B:	A930    	LDA #$30       ; Palette 4
C3/438D:	8529    	STA $29        ; Color: Gray
C3/438F:	4C9243  	JMP $4392      ; ...
C3/4392:	A0899E  	LDY #$9E89     ; 7E/9E89
C3/4395:	84E7    	STY $E7        ; Set src LBs
C3/4397:	A97E    	LDA #$7E       ; Bank: 7E
C3/4399:	85E9    	STA $E9        ; Set src HB
C3/439B:	20FF02  	JSR $02FF      ; Draw gauge
C3/439E:	60      	RTS

Text characters for filling color gauge
C3/439F:	10      	; Empty tile
C3/43A0:	12      	; 1/4 full
C3/43A1:	14      	; 2/4 full
C3/43A2:	16      	; 3/4 full

47: Initialize Cmd.Set menu
C3/43A3:	20F735  	JSR $35F7      ; Reset/Stop stuff
C3/43A6:	200D45  	JSR $450D      ; Draw menu
C3/43A9:	205047  	JSR $4750      ; Set to shift text
C3/43AC:	209746  	JSR $4697      ; Load navig data
C3/43AF:	20A046  	JSR $46A0      ; Relocate cursor
C3/43B2:	203308  	JSR $0833      ; Queue cursor OAM
C3/43B5:	A901    	LDA #$01       ; C3/1DE4
C3/43B7:	8526    	STA $26        ; Next: Fade-in
C3/43B9:	A948    	LDA #$48       ; C3/43C0
C3/43BB:	8527    	STA $27        ; Queue: Pick char
C3/43BD:	4C0936  	JMP $3609      ; BRT:1 + NMI

48: Handle Cmd.Set menu member selection
C3/43C0:	209D46  	JSR $469D      ; Handle D-Pad
C3/43C3:	A508    	LDA $08        ; No-autofire keys
C3/43C5:	8980    	BIT #$80       ; Pushing A?
C3/43C7:	F028    	BEQ $43F1      ; Branch if not
C3/43C9:	7B      	TDC            ; Clear A
C3/43CA:	A54B    	LDA $4B        ; Selected member
C3/43CC:	C904    	CMP #$04       ; Chose Arrange?
C3/43CE:	F037    	BEQ $4407      ; Sort if so
C3/43D0:	AA      	TAX            ; Index member
C3/43D1:	B569    	LDA $69,X      ; Nobody there?
C3/43D3:	3016    	BMI $43EB      ; Fail if so
C3/43D5:	201D0F  	JSR $0F1D      ; Sound: Click
C3/43D8:	A54E    	LDA $4E        ; Cursor row
C3/43DA:	855E    	STA $5E        ; Set return row
C3/43DC:	A54B    	LDA $4B        ; List slot
C3/43DE:	8564    	STA $64        ; Set member slot
C3/43E0:	20B546  	JSR $46B5      ; Load navig data
C3/43E3:	20BB46  	JSR $46BB      ; Relocate cursor
C3/43E6:	A962    	LDA #$62       ; C3/4419
C3/43E8:	8526    	STA $26        ; Next: Cmd choice
C3/43EA:	60      	RTS

Fork: Play buzzer
C3/43EB:	202B0F  	JSR $0F2B      ; Play buzzer
C3/43EE:	20F830  	JSR $30F8      ; Pixelate screen

Fork: Handle B and Start
C3/43F1:	A509    	LDA $09        ; No-autofire keys
C3/43F3:	8910    	BIT #$10       ; Pushing Start?
C3/43F5:	D006    	BNE $43FD      ; Branch if so
C3/43F7:	A509    	LDA $09        ; ...
C3/43F9:	8980    	BIT #$80       ; Pushing B?
C3/43FB:	F009    	BEQ $4406      ; Exit if not
C3/43FD:	20140F  	JSR $0F14      ; Sound: Cursor
C3/4400:	A90D    	LDA #$0D       ; C3/1CE3
C3/4402:	8527    	STA $27        ; Queue Config
C3/4404:	6426    	STZ $26        ; Next: Fade-out
C3/4406:	60      	RTS

Fork: Reset command order
C3/4407:	201D0F  	JSR $0F1D      ; Sound: Click
C3/440A:	20A40F  	JSR $0FA4      ; Queue text upload
C3/440D:	20B144  	JSR $44B1      ; Reset member 1
C3/4410:	20B944  	JSR $44B9      ; Reset member 2
C3/4413:	20C244  	JSR $44C2      ; Reset member 3
C3/4416:	4CCB44  	JMP $44CB      ; Reset member 4

62: Handle Cmd.Set menu command choice 1
C3/4419:	20E346  	JSR $46E3      ; Handle D-Pad
C3/441C:	A508    	LDA $08        ; No-autofire keys
C3/441E:	8980    	BIT #$80       ; Pushing A?
C3/4420:	F018    	BEQ $443A      ; Branch if not
C3/4422:	201D0F  	JSR $0F1D      ; Sound: Click
C3/4425:	A54B    	LDA $4B        ; Cursor slot
C3/4427:	8528    	STA $28        ; Set blinker's
C3/4429:	20A12F  	JSR $2FA1      ; Create blinker
C3/442C:	A963    	LDA #$63       ; C3/4457
C3/442E:	8526    	STA $26        ; Next: Choice 2
C3/4430:	7B      	TDC            ; Clear A
C3/4431:	A564    	LDA $64        ; Selected member
C3/4433:	0A      	ASL A          ; Double it
C3/4434:	AA      	TAX            ; Index it
C3/4435:	B46D    	LDY $6D,X      ; Actor's address
C3/4437:	8467    	STY $67        ; Memorize it
C3/4439:	60      	RTS

Fork: Handle B
C3/443A:	A509    	LDA $09        ; No-autofire keys
C3/443C:	8980    	BIT #$80       ; Pushing B?
C3/443E:	F016    	BEQ $4456      ; Exit if not
C3/4440:	20140F  	JSR $0F14      ; Sound: Cursor
C3/4443:	209746  	JSR $4697      ; Load navig data
C3/4446:	A55E    	LDA $5E        ; Return position
C3/4448:	854E    	STA $4E        ; Set cursor row
C3/444A:	20A046  	JSR $46A0      ; Relocate cursor
C3/444D:	A54E    	LDA $4E        ; ...
C3/444F:	855E    	STA $5E        ; ...
C3/4451:	A948    	LDA #$48       ; C3/43C0
C3/4453:	8526    	STA $26        ; Next: Pick char
C3/4455:	60      	RTS            ; ...
C3/4456:	60      	RTS

63: Handle Cmd.Set menu command choice 2
C3/4457:	20E346  	JSR $46E3      ; Handle D-Pad
C3/445A:	A508    	LDA $08        ; No-autofire keys
C3/445C:	8980    	BIT #$80       ; Pushing A?
C3/445E:	F03E    	BEQ $449E      ; Branch if not
C3/4460:	201D0F  	JSR $0F1D      ; Sound: Click
C3/4463:	7B      	TDC            ; Clear A
C3/4464:	A54B    	LDA $4B        ; Cursor's slot
C3/4466:	C221    	REP #$21       ; 16-bit A; C-
C3/4468:	6567    	ADC $67        ; Add actor's adr
C3/446A:	A8      	TAY            ; Index sum
C3/446B:	5A      	PHY            ; Memorize it
C3/446C:	E220    	SEP #$20       ; 8-bit A
C3/446E:	B91600  	LDA $0016,Y    ; Second command
C3/4471:	85E0    	STA $E0        ; Memorize it
C3/4473:	7B      	TDC            ; Clear A
C3/4474:	A528    	LDA $28        ; Blinker's slot
C3/4476:	C221    	REP #$21       ; 16-bit A; C-
C3/4478:	6567    	ADC $67        ; Add actor's adr
C3/447A:	A8      	TAY            ; Index sum
C3/447B:	E220    	SEP #$20       ; 8-bit A
C3/447D:	B91600  	LDA $0016,Y    ; First command
C3/4480:	85E1    	STA $E1        ; Memorize it
C3/4482:	A5E0    	LDA $E0        ; Second command
C3/4484:	991600  	STA $0016,Y    ; Replace first
C3/4487:	7A      	PLY            ; Point to second
C3/4488:	A5E1    	LDA $E1        ; First command
C3/448A:	991600  	STA $0016,Y    ; Replace second
C3/448D:	209545  	JSR $4595      ; Draw char 1 text
C3/4490:	20CE45  	JSR $45CE      ; Draw char 2 text
C3/4493:	200746  	JSR $4607      ; Draw char 3 text
C3/4496:	204046  	JSR $4640      ; Draw char 4 text
C3/4499:	20A40F  	JSR $0FA4      ; Queue text upload
C3/449C:	8009    	BRA $44A7      ; Next: Choice 1

Fork: Handle B
C3/449E:	A509    	LDA $09        ; No-autofire keys
C3/44A0:	8980    	BIT #$80       ; Pushing B?
C3/44A2:	F00C    	BEQ $44B0      ; Exit if not
C3/44A4:	20140F  	JSR $0F14      ; Sound: Cursor
C3/44A7:	A905    	LDA #$05       ; Blinker: Off
C3/44A9:	1446    	TRB $46        ; Set menu flag
C3/44AB:	A962    	LDA #$62       ; C3/4419
C3/44AD:	8526    	STA $26        ; Next: Choice 1
C3/44AF:	60      	RTS            ; ...
C3/44B0:	60      	RTS

Reset command list for member 1
C3/44B1:	A600    	LDX $00        ; Point to $6D
C3/44B3:	20D444  	JSR $44D4      ; Reset commands
C3/44B6:	4C9545  	JMP $4595      ; Redraw text

Reset command list for member 2
C3/44B9:	A20200  	LDX #$0002     ; Point to $6F
C3/44BC:	20D444  	JSR $44D4      ; Reset commands
C3/44BF:	4CCE45  	JMP $45CE      ; Redraw text

Reset command list for member 3
C3/44C2:	A20400  	LDX #$0004     ; Point to $71
C3/44C5:	20D444  	JSR $44D4      ; Reset commands
C3/44C8:	4C0746  	JMP $4607      ; Redraw text

Reset command list for member 4
C3/44CB:	A20600  	LDX #$0006     ; Point to $73
C3/44CE:	20D444  	JSR $44D4      ; Reset commands
C3/44D1:	4C4046  	JMP $4640      ; Redraw text

Reset member's battle command list
C3/44D4:	B46D    	LDY $6D,X      ; Actor's address
C3/44D6:	F033    	BEQ $450B      ; Exit if nobody
C3/44D8:	7B      	TDC            ; Clear A
C3/44D9:	B90000  	LDA $0000,Y    ; Actor
C3/44DC:	C90C    	CMP #$0C       ; Gogo?
C3/44DE:	F02C    	BEQ $450C      ; Exit if so
C3/44E0:	8D0242  	STA $4202      ; Set multiplicand
C3/44E3:	A916    	LDA #$16       ; Actor data size
C3/44E5:	8D0342  	STA $4203      ; Set multiplier
C3/44E8:	EA      	NOP
C3/44E9:	EA      	NOP
C3/44EA:	EA      	NOP
C3/44EB:	EA      	NOP
C3/44EC:	AE1642  	LDX $4216      ; Index product
C3/44EF:	BFA27CED	LDA $ED7CA2,X  ; Command 1
C3/44F3:	991600  	STA $0016,Y    ; Set actor's
C3/44F6:	BFA37CED	LDA $ED7CA3,X  ; Command 2
C3/44FA:	991700  	STA $0017,Y    ; Set actor's
C3/44FD:	BFA47CED	LDA $ED7CA4,X  ; Command 3
C3/4501:	991800  	STA $0018,Y    ; Set actor's
C3/4504:	BFA57CED	LDA $ED7CA5,X  ; Command 4
C3/4508:	991900  	STA $0019,Y    ; Set actor's
C3/450B:	60      	RTS            ; ...
C3/450C:	60      	RTS

Draw Cmd.Set menu
C3/450D:	20BC71  	JSR $71BC      ; Clear BG2 map A
C3/4510:	A07145  	LDY #$4571     ; C3/4571
C3/4513:	20C403  	JSR $03C4      ; Draw cmd box A
C3/4516:	A07545  	LDY #$4575     ; C3/4575
C3/4519:	20C403  	JSR $03C4      ; Draw cmd box B
C3/451C:	A07945  	LDY #$4579     ; C3/4579
C3/451F:	20C403  	JSR $03C4      ; Draw cmd box C
C3/4522:	A07D45  	LDY #$457D     ; C3/457D
C3/4525:	20C403  	JSR $03C4      ; Draw cmd box D
C3/4528:	A08145  	LDY #$4581     ; C3/4581
C3/452B:	20C403  	JSR $03C4      ; Draw name box A
C3/452E:	A08545  	LDY #$4585     ; C3/4585
C3/4531:	20C403  	JSR $03C4      ; Draw name box B
C3/4534:	A08945  	LDY #$4589     ; C3/4589
C3/4537:	20C403  	JSR $03C4      ; Draw name box C
C3/453A:	A08D45  	LDY #$458D     ; C3/458D
C3/453D:	20C403  	JSR $03C4      ; Draw name box D
C3/4540:	A09145  	LDY #$4591     ; C3/4591
C3/4543:	20C403  	JSR $03C4      ; Draw Arrange box
C3/4546:	20BD0E  	JSR $0EBD      ; Upload windows
C3/4549:	20A971  	JSR $71A9      ; Clear BG1 map A
C3/454C:	20AD71  	JSR $71AD      ; Clear BG1 map B
C3/454F:	20D071  	JSR $71D0      ; Clear BG3 map A
C3/4552:	20D571  	JSR $71D5      ; Clear BG3 map B
C3/4555:	A930    	LDA #$30       ; Palette 4
C3/4557:	8529    	STA $29        ; Color: Blue
C3/4559:	A0B34F  	LDY #$4FB3     ; Text pointer
C3/455C:	202603  	JSR $0326      ; Draw "Arrange"
C3/455F:	209545  	JSR $4595      ; Draw char 1 text
C3/4562:	20CE45  	JSR $45CE      ; Draw char 2 text
C3/4565:	200746  	JSR $4607      ; Draw char 3 text
C3/4568:	204046  	JSR $4640      ; Draw char 4 text
C3/456B:	20930E  	JSR $0E93      ; Upload BG1 A+B
C3/456E:	4CD90E  	JMP $0ED9      ; Upload BG3 A+B

Window layout for Cmd.Set menu
C3/4571:	1F591204	; 20x06 at $591F (Command set A)
C3/4575:	9F5A1204	; 20x06 at $5A9F (Command set B)
C3/4579:	1F5C1204	; 20x06 at $5C1F (Command set C)
C3/457D:	9F5D1204	; 20x06 at $5D9F (Command set D)
C3/4581:	0B590804	; 10x06 at $590B (Member name A)
C3/4585:	8B5A0804	; 10x06 at $5A8B (Member name B)
C3/4589:	0B5C0804	; 10x06 at $5C0B (Member name C)
C3/458D:	8B5D0804	; 10x06 at $5D8B (Member name D)
C3/4591:	8B580801	; 10x03 at $588B (Arrange)

Draw Cmd.Set menu text for member 1
C3/4595:	A569    	LDA $69        ; Actor in slot
C3/4597:	3034    	BMI $45CD      ; Exit if none
C3/4599:	220600C2	JSL $C20006    ; Load gear data
C3/459D:	A66D    	LDX $6D        ; Actor's address
C3/459F:	8667    	STX $67        ; Memorize it
C3/45A1:	A930    	LDA #$30       ; Palette 4
C3/45A3:	8529    	STA $29        ; Color: Blue
C3/45A5:	A04F79  	LDY #$794F     ; Text position
C3/45A8:	206A35  	JSR $356A      ; Draw actor name
C3/45AB:	A920    	LDA #$20       ; Palette 0
C3/45AD:	8529    	STA $29        ; Color: User's
C3/45AF:	A0CF79  	LDY #$79CF     ; Text position
C3/45B2:	208035  	JSR $3580      ; Draw actor class
C3/45B5:	A06D79  	LDY #$796D     ; Text position
C3/45B8:	207946  	JSR $4679      ; Draw command 1
C3/45BB:	A0E379  	LDY #$79E3     ; Text position
C3/45BE:	207F46  	JSR $467F      ; Draw command 2
C3/45C1:	A0F779  	LDY #$79F7     ; Text position
C3/45C4:	208646  	JSR $4686      ; Draw command 3
C3/45C7:	A06D7A  	LDY #$7A6D     ; Text position
C3/45CA:	208E46  	JSR $468E      ; Draw command 4
C3/45CD:	60      	RTS

Draw Cmd.Set menu text for member 2
C3/45CE:	A56A    	LDA $6A        ; Actor in slot
C3/45D0:	3034    	BMI $4606      ; Exit if none
C3/45D2:	220600C2	JSL $C20006    ; Load gear data
C3/45D6:	A66F    	LDX $6F        ; Actor's address
C3/45D8:	8667    	STX $67        ; Memorize it
C3/45DA:	A930    	LDA #$30       ; Palette 4
C3/45DC:	8529    	STA $29        ; Color: Blue
C3/45DE:	A00F7B  	LDY #$7B0F     ; Text position
C3/45E1:	206A35  	JSR $356A      ; Draw actor name
C3/45E4:	A920    	LDA #$20       ; Palette 0
C3/45E6:	8529    	STA $29        ; Color: User's
C3/45E8:	A08F7B  	LDY #$7B8F     ; Text position
C3/45EB:	208035  	JSR $3580      ; Draw actor class
C3/45EE:	A02D7B  	LDY #$7B2D     ; Text position
C3/45F1:	207946  	JSR $4679      ; Draw command 1
C3/45F4:	A0A37B  	LDY #$7BA3     ; Text position
C3/45F7:	207F46  	JSR $467F      ; Draw command 2
C3/45FA:	A0B77B  	LDY #$7BB7     ; Text position
C3/45FD:	208646  	JSR $4686      ; Draw command 3
C3/4600:	A02D7C  	LDY #$7C2D     ; Text position
C3/4603:	208E46  	JSR $468E      ; Draw command 4
C3/4606:	60      	RTS

Draw Cmd.Set menu text for member 3
C3/4607:	A56B    	LDA $6B        ; Actor in slot
C3/4609:	3034    	BMI $463F      ; Exit if none
C3/460B:	220600C2	JSL $C20006    ; Load gear data
C3/460F:	A671    	LDX $71        ; Actor's address
C3/4611:	8667    	STX $67        ; Memorize it
C3/4613:	A930    	LDA #$30       ; Palette 4
C3/4615:	8529    	STA $29        ; Color: Blue
C3/4617:	A0CF7C  	LDY #$7CCF     ; Text position
C3/461A:	206A35  	JSR $356A      ; Draw actor name
C3/461D:	A920    	LDA #$20       ; Palette 0
C3/461F:	8529    	STA $29        ; Color: User's
C3/4621:	A04F7D  	LDY #$7D4F     ; Text position
C3/4624:	208035  	JSR $3580      ; Draw actor class
C3/4627:	A0ED7C  	LDY #$7CED     ; Text position
C3/462A:	207946  	JSR $4679      ; Draw command 1
C3/462D:	A0637D  	LDY #$7D63     ; Text position
C3/4630:	207F46  	JSR $467F      ; Draw command 2
C3/4633:	A0777D  	LDY #$7D77     ; Text position
C3/4636:	208646  	JSR $4686      ; Draw command 3
C3/4639:	A0ED7D  	LDY #$7DED     ; Text position
C3/463C:	208E46  	JSR $468E      ; Draw command 4
C3/463F:	60      	RTS

Draw Cmd.Set menu text for member 4
C3/4640:	A56C    	LDA $6C        ; Actor in slot
C3/4642:	3034    	BMI $4678      ; Exit if none
C3/4644:	220600C2	JSL $C20006    ; Load gear data
C3/4648:	A673    	LDX $73        ; Actor's address
C3/464A:	8667    	STX $67        ; Memorize it
C3/464C:	A930    	LDA #$30       ; Palette 4
C3/464E:	8529    	STA $29        ; Color: Blue
C3/4650:	A08F7E  	LDY #$7E8F     ; Text position
C3/4653:	206A35  	JSR $356A      ; Draw actor name
C3/4656:	A920    	LDA #$20       ; Palette 0
C3/4658:	8529    	STA $29        ; Color: User's
C3/465A:	A00F7F  	LDY #$7F0F     ; Text position
C3/465D:	208035  	JSR $3580      ; Draw actor class
C3/4660:	A0AD7E  	LDY #$7EAD     ; Text position
C3/4663:	207946  	JSR $4679      ; Draw command 1
C3/4666:	A0237F  	LDY #$7F23     ; Text position
C3/4669:	207F46  	JSR $467F      ; Draw command 2
C3/466C:	A0377F  	LDY #$7F37     ; Text position
C3/466F:	208646  	JSR $4686      ; Draw command 3
C3/4672:	A0AD7F  	LDY #$7FAD     ; Text position
C3/4675:	208E46  	JSR $468E      ; Draw command 4
C3/4678:	60      	RTS

Draw member's 1st command in Cmd.Set menu
C3/4679:	20E135  	JSR $35E1      ; Set pos/WRAM/Y
C3/467C:	4C3E65  	JMP $653E      ; Draw command

Draw member's 2nd command in Cmd.Set menu
C3/467F:	20E135  	JSR $35E1      ; Set pos/WRAM/Y
C3/4682:	C8      	INY            ; Point to cmd 2
C3/4683:	4C3E65  	JMP $653E      ; Draw command

Draw member's 3rd command in Cmd.Set menu
C3/4686:	20E135  	JSR $35E1      ; Set pos/WRAM/Y
C3/4689:	C8      	INY            ; Point to cmd 2
C3/468A:	C8      	INY            ; Point to cmd 3
C3/468B:	4C3E65  	JMP $653E      ; Draw command

Draw member's 4th command in Cmd.Set menu
C3/468E:	20E135  	JSR $35E1      ; Set pos/WRAM/Y
C3/4691:	C8      	INY            ; Point to cmd 2
C3/4692:	C8      	INY            ; Point to cmd 3
C3/4693:	C8      	INY            ; Point to cmd 4
C3/4694:	4C3E65  	JMP $653E      ; Draw command

Load navigation data for Cmd.Set menu's actor list
C3/4697:	A0A646  	LDY #$46A6     ; C3/46A6
C3/469A:	4C8106  	JMP $0681      ; Load navig data

Handle D-Pad for Cmd.Set menu's actor list
C3/469D:	20B007  	JSR $07B0      ; Handle D-Pad
C3/46A0:	A0AB46  	LDY #$46AB     ; C3/46AB
C3/46A3:	4CC306  	JMP $06C3      ; Relocate cursor

Navigation data for Cmd.Set menu's actor list
C3/46A6:	80      	; Wraps vertically
C3/46A7:	00      	; Initial column
C3/46A8:	00      	; Initial row
C3/46A9:	01      	; 1 column
C3/46AA:	05      	; 5 rows

Cursor positions for Cmd.Set menu's actor list
C3/46AB:	0820    	; Member 1
C3/46AD:	0850    	; Member 2
C3/46AF:	0880    	; Member 3
C3/46B1:	08B0    	; Member 4
C3/46B3:	080C    	; Arrange

Load navigation data for Cmd.Set menu's command list
C3/46B5:	A02B47  	LDY #$472B     ; C3/472B
C3/46B8:	4C8106  	JMP $0681      ; Load navig data

Relocate cursor in Cmd.Set menu's command list
C3/46BB:	7B      	TDC            ; Clear A
C3/46BC:	A564    	LDA $64        ; Member slot
C3/46BE:	0A      	ASL A          ; Double it
C3/46BF:	AA      	TAX            ; Index it
C3/46C0:	7CC346  	JMP ($46C3,X)  ; Relocate cursor

Jump table for the above
C3/46C3:	CB46    	; Member 1
C3/46C5:	D146    	; Member 2
C3/46C7:	D746    	; Member 3
C3/46C9:	DD46    	; Member 4

Relocate cursor in Cmd.Set menu's command list for member 1
C3/46CB:	A03047  	LDY #$4730     ; C3/4730
C3/46CE:	4CC306  	JMP $06C3      ; Relocate cursor

Relocate cursor in Cmd.Set menu's command list for member 2
C3/46D1:	A03847  	LDY #$4738     ; C3/4738
C3/46D4:	4CC306  	JMP $06C3      ; Relocate cursor

Relocate cursor in Cmd.Set menu's command list for member 3
C3/46D7:	A04047  	LDY #$4740     ; C3/4740
C3/46DA:	4CC306  	JMP $06C3      ; Relocate cursor

Relocate cursor in Cmd.Set menu's command list for member 4
C3/46DD:	A04847  	LDY #$4748     ; C3/4748
C3/46E0:	4CC306  	JMP $06C3      ; Relocate cursor

Handle D-Pad and cursor for Cmd.Set menu's command list
C3/46E3:	20F646  	JSR $46F6      ; Handle D-Pad
C3/46E6:	7B      	TDC            ; Clear A
C3/46E7:	A564    	LDA $64        ; Member
C3/46E9:	0A      	ASL A          ; Double it
C3/46EA:	AA      	TAX            ; Index it
C3/46EB:	7CEE46  	JMP ($46EE,X)  ; Relocate cursor

Jump table for the above
C3/46EE:	CB46    	; Member 1
C3/46F0:	D146    	; Member 2
C3/46F2:	D746    	; Member 3
C3/46F4:	DD46    	; Member 4

Handle D-Pad for Cmd.Set menu's command list
C3/46F6:	644D    	STZ $4D        ; Cursor col: 1st
C3/46F8:	A50B    	LDA $0B        ; Semi-auto keys
C3/46FA:	8908    	BIT #$08       ; Pushing up?
C3/46FC:	F005    	BEQ $4703      ; Branch if not
C3/46FE:	644E    	STZ $4E        ; Cursor slot: Top
C3/4700:	200E0F  	JSR $0F0E      ; Sound: Cursor
C3/4703:	A50B    	LDA $0B        ; Semi-auto keys
C3/4705:	8904    	BIT #$04       ; Pushing down?
C3/4707:	F007    	BEQ $4710      ; Branch if not
C3/4709:	A903    	LDA #$03       ; Slot: Bottom
C3/470B:	854E    	STA $4E        ; Set cursor slot
C3/470D:	200E0F  	JSR $0F0E      ; Sound: Cursor
C3/4710:	A50B    	LDA $0B        ; Semi-auto keys
C3/4712:	8902    	BIT #$02       ; Pushing left?
C3/4714:	F007    	BEQ $471D      ; Branch if not
C3/4716:	A901    	LDA #$01       ; Slot: Left
C3/4718:	854E    	STA $4E        ; Set cursor slot
C3/471A:	200E0F  	JSR $0F0E      ; Sound: Cursor
C3/471D:	A50B    	LDA $0B        ; Semi-auto keys
C3/471F:	8901    	BIT #$01       ; Pushing right?
C3/4721:	F007    	BEQ $472A      ; Exit if not
C3/4723:	A902    	LDA #$02       ; Slot: Right
C3/4725:	854E    	STA $4E        ; Set cursor slot
C3/4727:	200E0F  	JSR $0F0E      ; Sound: Cursor
C3/472A:	60      	RTS

Navigation data for Cmd.Set menu's command list
C3/472B:	81      	; Never wraps
C3/472C:	00      	; Initial column
C3/472D:	00      	; Initial row
C3/472E:	01      	; 1 column
C3/472F:	04      	; 4 rows

Cursor positions for member 1 in Cmd.Set menu
C3/4730:	8020    	; Command 1
C3/4732:	582C    	; Command 2
C3/4734:	A82C    	; Command 3
C3/4736:	8038    	; Command 4

Cursor positions for member 2 in Cmd.Set menu
C3/4738:	8050    	; Command 1
C3/473A:	585C    	; Command 2
C3/473C:	A85C    	; Command 3
C3/473E:	8068    	; Command 4

Cursor positions for member 3 in Cmd.Set menu
C3/4740:	8080    	; Command 1
C3/4742:	588C    	; Command 2
C3/4744:	A88C    	; Command 3
C3/4746:	8098    	; Command 4

Cursor positions for member 4 in Cmd.Set menu
C3/4748:	80B0    	; Command 1
C3/474A:	58BC    	; Command 2
C3/474C:	A8BC    	; Command 3
C3/474E:	80C8    	; Command 4

Set to condense text in Cmd.Set menu
C3/4750:	A902    	LDA #$02       ; 1Rx2B to PPU
C3/4752:	8D5043  	STA $4350      ; Set DMA mode
C3/4755:	A912    	LDA #$12       ; $2112
C3/4757:	8D5143  	STA $4351      ; To BG3 V-Scroll
C3/475A:	A06F47  	LDY #$476F     ; C3/476F
C3/475D:	8C5243  	STY $4352      ; Set src LBs
C3/4760:	A9C3    	LDA #$C3       ; Bank: C3
C3/4762:	8D5443  	STA $4354      ; Set src HB
C3/4765:	A9C3    	LDA #$C3       ; ...
C3/4767:	8D5743  	STA $4357      ; Set indir HB
C3/476A:	A920    	LDA #$20       ; Channel: 5
C3/476C:	0443    	TSB $43        ; Queue HDMA-5
C3/476E:	60      	RTS

Text shifting table for the above
C3/476F:	1F 0000 	; Arrange
C3/4772:	0C 0400 	; Row 1
C3/4775:	0C 0800 	; Row 2
C3/4778:	24 0C00 	; Row 3, row 4
C3/477B:	0C 1000 	; Row 5
C3/477E:	24 1400 	; Row 6, row 7
C3/4781:	0C 1800 	; Row 8
C3/4784:	24 1C00 	; Row 9, row 10
C3/4787:	0C 2000 	; Row 11
C3/478A:	24 2400 	; Row 12
C3/478D:	00      	; End

49: Initialize Button Settings menu
C3/478E:	20F735  	JSR $35F7      ; Reset/Stop stuff
C3/4791:	202C4A  	JSR $4A2C      ; Draw menu
C3/4794:	20844A  	JSR $4A84      ; Set to shift text
C3/4797:	20D44A  	JSR $4AD4      ; Load navig data
C3/479A:	20DD4A  	JSR $4ADD      ; Relocate cursor
C3/479D:	203308  	JSR $0833      ; Queue cursor OAM
C3/47A0:	A901    	LDA #$01       ; C3/1DE4
C3/47A2:	8526    	STA $26        ; Next: Fade-in
C3/47A4:	A94A    	LDA #$4A       ; C3/47AB
C3/47A6:	8527    	STA $27        ; Queue: Sustain
C3/47A8:	4C0936  	JMP $3609      ; BRT:1 + NMI

4A: Sustain Button Settings menu
C3/47AB:	20A40F  	JSR $0FA4      ; Queue BG3 upload
C3/47AE:	20DA4A  	JSR $4ADA      ; Handle D-Pad
C3/47B1:	A509    	LDA $09        ; No-autofire keys
C3/47B3:	8910    	BIT #$10       ; Pushing Start?
C3/47B5:	F014    	BEQ $47CB      ; Branch if not
C3/47B7:	207C4D  	JSR $4D7C      ; Valid settings?
C3/47BA:	85E0    	STA $E0        ; ...
C3/47BC:	D01D    	BNE $47DB      ; Fail if not
C3/47BE:	201D0F  	JSR $0F1D      ; Sound: Click
C3/47C1:	20EFAD  	JSR $ADEF      ; Apply user keys
C3/47C4:	A90D    	LDA #$0D       ; C3/1CE3
C3/47C6:	8527    	STA $27        ; Queue Config menu
C3/47C8:	6426    	STZ $26        ; Next: Fade-out
C3/47CA:	60      	RTS

Fork: Handle left and right
C3/47CB:	A50B    	LDA $0B        ; Semi-auto keys
C3/47CD:	8901    	BIT #$01       ; Pushing right?
C3/47CF:	D006    	BNE $47D7      ; Branch if so
C3/47D1:	A50B    	LDA $0B        ; ...
C3/47D3:	8902    	BIT #$02       ; Pushing left?
C3/47D5:	F003    	BEQ $47DA      ; Exit if not
C3/47D7:	4CF24B  	JMP $4BF2      ; Handle changes
C3/47DA:	60      	RTS

Fork: Invalid combination
C3/47DB:	202B0F  	JSR $0F2B      ; Play buzzer
C3/47DE:	20F830  	JSR $30F8      ; Pixelate screen
C3/47E1:	60      	RTS

4B: Initialize Controller menu
C3/47E2:	20F735  	JSR $35F7      ; Reset/Stop stuff
C3/47E5:	202A48  	JSR $482A      ; Draw menu
C3/47E8:	20DD49  	JSR $49DD      ; Queue Win2 HDMA
C3/47EB:	200C4A  	JSR $4A0C      ; Load navig data
C3/47EE:	20154A  	JSR $4A15      ; Relocate cursor
C3/47F1:	203308  	JSR $0833      ; Queue cursor OAM
C3/47F4:	A901    	LDA #$01       ; C3/1DE4
C3/47F6:	8526    	STA $26        ; Next: Fade-in
C3/47F8:	A94C    	LDA #$4C       ; C3/47FF
C3/47FA:	8527    	STA $27        ; Queue: Sustain menu
C3/47FC:	4C0936  	JMP $3609      ; BRT:1 + NMI

4C: Sustain Controller menu
C3/47FF:	20A40F  	JSR $0FA4      ; Queue BG3 upload
C3/4802:	20124A  	JSR $4A12      ; Handle D-Pad
C3/4805:	A509    	LDA $09        ; No-autofire keys
C3/4807:	8910    	BIT #$10       ; Pushing Start?
C3/4809:	D006    	BNE $4811      ; Branch if so
C3/480B:	A509    	LDA $09        ; ...
C3/480D:	8980    	BIT #$80       ; Pushing B?
C3/480F:	F00A    	BEQ $481B      ; Branch if not
C3/4811:	20140F  	JSR $0F14      ; Sound: Cursor
C3/4814:	A90D    	LDA #$0D       ; C3/1CE3
C3/4816:	8527    	STA $27        ; Queue Config menu
C3/4818:	6426    	STZ $26        ; Next: Fade-out
C3/481A:	60      	RTS

Fork: Handle left and right
C3/481B:	A50B    	LDA $0B        ; Semi-auto keys
C3/481D:	8901    	BIT #$01       ; Pushing right?
C3/481F:	D006    	BNE $4827      ; Branch if so
C3/4821:	A50B    	LDA $0B        ; ...
C3/4823:	8902    	BIT #$02       ; Pushing left?
C3/4825:	F002    	BEQ $4829      ; Exit if not
C3/4827:	8023    	BRA $484C      ; Handle changes
C3/4829:	60      	RTS

Draw Controller menu
C3/482A:	A0284A  	LDY #$4A28     ; C3/4A28
C3/482D:	20C403  	JSR $03C4      ; Draw menu window
C3/4830:	20BD0E  	JSR $0EBD      ; Upload window
C3/4833:	A930    	LDA #$30       ; Palette 4
C3/4835:	8529    	STA $29        ; Color: Blue
C3/4837:	A0BA4F  	LDY #$4FBA     ; Text pointer
C3/483A:	20F902  	JSR $02F9      ; Draw "Controller"
C3/483D:	20E948  	JSR $48E9      ; Draw char 1 text
C3/4840:	202649  	JSR $4926      ; Draw char 2 text
C3/4843:	206349  	JSR $4963      ; Draw char 3 text
C3/4846:	20A049  	JSR $49A0      ; Draw char 4 text
C3/4849:	4CD90E  	JMP $0ED9      ; Upload text

Handle changes in Controller menu
C3/484C:	7B      	TDC            ; Clear A
C3/484D:	A54B    	LDA $4B        ; Member slot
C3/484F:	AA      	TAX            ; Index it
C3/4850:	B569    	LDA $69,X      ; Nobody there?
C3/4852:	300A    	BMI $485E      ; Exit if so
C3/4854:	200E0F  	JSR $0F0E      ; Sound: Cursor
C3/4857:	A54B    	LDA $4B        ; Cursor slot
C3/4859:	0A      	ASL A          ; Double it
C3/485A:	AA      	TAX            ; Index it
C3/485B:	7C5F48  	JMP ($485F,X)  ; Apply changes
C3/485E:	60      	RTS

Jump table for controller assignments
C3/485F:	6748    	; Member 1
C3/4861:	8648    	; Member 2
C3/4863:	A748    	; Member 3
C3/4865:	C848    	; Member 4

Update controller assignment for member 1
C3/4867:	AD4F1D  	LDA $1D4F      ; ...
C3/486A:	2901    	AND #$01       ; ...
C3/486C:	A50B    	LDA $0B        ; Semi-auto keys
C3/486E:	8901    	BIT #$01       ; Pushing right?
C3/4870:	F00A    	BEQ $487C      ; Branch if not
C3/4872:	A901    	LDA #$01       ; Assign Cntlr2
C3/4874:	0D4F1D  	ORA $1D4F      ; Merge pad data
C3/4877:	8D4F1D  	STA $1D4F      ; Update options
C3/487A:	806D    	BRA $48E9      ; Redraw text
C3/487C:	AD4F1D  	LDA $1D4F      ; Joypad options
C3/487F:	29FE    	AND #$FE       ; Assign Cntlr1
C3/4881:	8D4F1D  	STA $1D4F      ; Save changes
C3/4884:	8063    	BRA $48E9      ; Redraw text

Update controller assignment for member 2
C3/4886:	AD4F1D  	LDA $1D4F      ; ...
C3/4889:	2902    	AND #$02       ; ...
C3/488B:	A50B    	LDA $0B        ; Semi-auto keys
C3/488D:	8901    	BIT #$01       ; Pushing right?
C3/488F:	F00B    	BEQ $489C      ; Branch if not
C3/4891:	A902    	LDA #$02       ; Assign Cntlr2
C3/4893:	0D4F1D  	ORA $1D4F      ; Merge pad data
C3/4896:	8D4F1D  	STA $1D4F      ; Update options
C3/4899:	4C2649  	JMP $4926      ; Redraw text
C3/489C:	AD4F1D  	LDA $1D4F      ; Joypad options
C3/489F:	29FD    	AND #$FD       ; Assign Cntlr1
C3/48A1:	8D4F1D  	STA $1D4F      ; Save changes
C3/48A4:	4C2649  	JMP $4926      ; Redraw text

Update controller assignment for member 3
C3/48A7:	AD4F1D  	LDA $1D4F      ; ...
C3/48AA:	2904    	AND #$04       ; ...
C3/48AC:	A50B    	LDA $0B        ; Semi-auto keys
C3/48AE:	8901    	BIT #$01       ; Pushing right?
C3/48B0:	F00B    	BEQ $48BD      ; Branch if not
C3/48B2:	A904    	LDA #$04       ; Assign Cntlr2
C3/48B4:	0D4F1D  	ORA $1D4F      ; Merge pad data
C3/48B7:	8D4F1D  	STA $1D4F      ; Update options
C3/48BA:	4C6349  	JMP $4963      ; Redraw text
C3/48BD:	AD4F1D  	LDA $1D4F      ; Joypad options
C3/48C0:	29FB    	AND #$FB       ; Assign Cntlr1
C3/48C2:	8D4F1D  	STA $1D4F      ; Save changes
C3/48C5:	4C6349  	JMP $4963      ; Redraw text

Update controller assignment for member 4
C3/48C8:	AD4F1D  	LDA $1D4F      ; ...
C3/48CB:	2908    	AND #$08       ; ...
C3/48CD:	A50B    	LDA $0B        ; Semi-auto keys
C3/48CF:	8901    	BIT #$01       ; Pushing right?
C3/48D1:	F00B    	BEQ $48DE      ; Branch if not
C3/48D3:	A908    	LDA #$08       ; Assign Cntlr2
C3/48D5:	0D4F1D  	ORA $1D4F      ; Merge pad data
C3/48D8:	8D4F1D  	STA $1D4F      ; Update options
C3/48DB:	4CA049  	JMP $49A0      ; Redraw text
C3/48DE:	AD4F1D  	LDA $1D4F      ; Joypad options
C3/48E1:	29F7    	AND #$F7       ; Assign Cntlr1
C3/48E3:	8D4F1D  	STA $1D4F      ; Save changes
C3/48E6:	4CA049  	JMP $49A0      ; Redraw text

Draw Controller menu text for member 1
C3/48E9:	A569    	LDA $69        ; Nobody here?
C3/48EB:	3038    	BMI $4925      ; Exit if so
C3/48ED:	A66D    	LDX $6D        ; Actor's address
C3/48EF:	8667    	STX $67        ; Memorize it
C3/48F1:	A920    	LDA #$20       ; Palette 0
C3/48F3:	8529    	STA $29        ; Color: User's
C3/48F5:	A0CF7B  	LDY #$7BCF     ; Text position
C3/48F8:	206A35  	JSR $356A      ; Draw actor name
C3/48FB:	AD4F1D  	LDA $1D4F      ; Assigned pad
C3/48FE:	2901    	AND #$01       ; Player 1's?
C3/4900:	F009    	BEQ $490B      ; Branch if so
C3/4902:	A924    	LDA #$24       ; Color: Gray
C3/4904:	201449  	JSR $4914      ; Draw "Cntlr1"
C3/4907:	A920    	LDA #$20       ; Color: User's
C3/4909:	8012    	BRA $491D      ; Draw "Cntlr2"

Fork: Highlight Cntlr1
C3/490B:	A920    	LDA #$20       ; Color: User's
C3/490D:	201449  	JSR $4914      ; Draw "Cntlr1"
C3/4910:	A924    	LDA #$24       ; Color: Gray
C3/4912:	8009    	BRA $491D      ; Draw "Cntlr2"

Fork: Draw "Cntlr1"
C3/4914:	8529    	STA $29        ; Set palette
C3/4916:	A0C94F  	LDY #$4FC9     ; Text pointer
C3/4919:	20F902  	JSR $02F9      ; Draw "Cntlr1"
C3/491C:	60      	RTS

Fork: Draw "Cntlr2"
C3/491D:	8529    	STA $29        ; Set palette
C3/491F:	A0D44F  	LDY #$4FD4     ; Text pointer
C3/4922:	20F902  	JSR $02F9      ; Draw "Cntlr2"
C3/4925:	60      	RTS

Draw Controller menu text for member 2
C3/4926:	A56A    	LDA $6A        ; Nobody here?
C3/4928:	3038    	BMI $4962      ; Exit if so
C3/492A:	A66F    	LDX $6F        ; Actor's address
C3/492C:	8667    	STX $67        ; Memorize it
C3/492E:	A920    	LDA #$20       ; Palette 0
C3/4930:	8529    	STA $29        ; Color: User's
C3/4932:	A04F7C  	LDY #$7C4F     ; Text position
C3/4935:	206A35  	JSR $356A      ; Draw actor name
C3/4938:	AD4F1D  	LDA $1D4F      ; Assigned pad
C3/493B:	2902    	AND #$02       ; Player 1's?
C3/493D:	F009    	BEQ $4948      ; Branch if so
C3/493F:	A924    	LDA #$24       ; Color: Gray
C3/4941:	205149  	JSR $4951      ; Draw "Cntlr1"
C3/4944:	A920    	LDA #$20       ; Color: User's
C3/4946:	8012    	BRA $495A      ; Draw "Cntlr2"

Fork: Highlight Cntlr1
C3/4948:	A920    	LDA #$20       ; Color: User's
C3/494A:	205149  	JSR $4951      ; Draw "Cntlr1"
C3/494D:	A924    	LDA #$24       ; Color: Gray
C3/494F:	8009    	BRA $495A      ; Draw "Cntlr2"

Fork: Draw "Cntlr1"
C3/4951:	8529    	STA $29        ; Set palette
C3/4953:	A0DF4F  	LDY #$4FDF     ; Text pointer
C3/4956:	20F902  	JSR $02F9      ; Draw "Cntlr1"
C3/4959:	60      	RTS

Fork: Draw "Cntlr2"
C3/495A:	8529    	STA $29        ; Set palette
C3/495C:	A0EA4F  	LDY #$4FEA     ; Text pointer
C3/495F:	20F902  	JSR $02F9      ; Draw "Cntlr2"
C3/4962:	60      	RTS

Draw Controller menu text for member 3
C3/4963:	A56B    	LDA $6B        ; Nobody here?
C3/4965:	3038    	BMI $499F      ; Exit if so
C3/4967:	A671    	LDX $71        ; Actor's address
C3/4969:	8667    	STX $67        ; Memorize it
C3/496B:	A920    	LDA #$20       ; Palette 0
C3/496D:	8529    	STA $29        ; Color: User's
C3/496F:	A0CF7C  	LDY #$7CCF     ; Text position
C3/4972:	206A35  	JSR $356A      ; Draw actor name
C3/4975:	AD4F1D  	LDA $1D4F      ; Assigned pad
C3/4978:	2904    	AND #$04       ; Player 1's?
C3/497A:	F009    	BEQ $4985      ; Branch if so
C3/497C:	A924    	LDA #$24       ; Color: Gray
C3/497E:	208E49  	JSR $498E      ; Draw "Cntlr1"
C3/4981:	A920    	LDA #$20       ; Color: User's
C3/4983:	8012    	BRA $4997      ; Draw "Cntlr2"

Fork: Highlight Cntlr1
C3/4985:	A920    	LDA #$20       ; Color: User's
C3/4987:	208E49  	JSR $498E      ; Draw "Cntlr1"
C3/498A:	A924    	LDA #$24       ; Color: Gray
C3/498C:	8009    	BRA $4997      ; Draw "Cntlr2"

Fork: Draw "Cntlr1"
C3/498E:	8529    	STA $29        ; Set palette
C3/4990:	A0F54F  	LDY #$4FF5     ; Text pointer
C3/4993:	20F902  	JSR $02F9      ; Draw "Cntlr1"
C3/4996:	60      	RTS

Fork: Draw "Cntlr2"
C3/4997:	8529    	STA $29        ; Set palette
C3/4999:	A00050  	LDY #$5000     ; Text pointer
C3/499C:	20F902  	JSR $02F9      ; Draw "Cntlr2"
C3/499F:	60      	RTS

Draw Controller menu text for member 4
C3/49A0:	A56C    	LDA $6C        ; Nobody here?
C3/49A2:	3038    	BMI $49DC      ; Exit if so
C3/49A4:	A673    	LDX $73        ; Actor's address
C3/49A6:	8667    	STX $67        ; Memorize it
C3/49A8:	A920    	LDA #$20       ; Palette 0
C3/49AA:	8529    	STA $29        ; Color: User's
C3/49AC:	A04F7D  	LDY #$7D4F     ; Text position
C3/49AF:	206A35  	JSR $356A      ; Draw actor name
C3/49B2:	AD4F1D  	LDA $1D4F      ; Assigned pad
C3/49B5:	2908    	AND #$08       ; Player 1's?
C3/49B7:	F009    	BEQ $49C2      ; Branch if so
C3/49B9:	A924    	LDA #$24       ; Color: Gray
C3/49BB:	20CB49  	JSR $49CB      ; Draw "Cntlr1"
C3/49BE:	A920    	LDA #$20       ; Color: User's
C3/49C0:	8012    	BRA $49D4      ; Draw "Cntlr2"

Fork: Highlight Cntlr1
C3/49C2:	A920    	LDA #$20       ; Color: User's
C3/49C4:	20CB49  	JSR $49CB      ; Draw "Cntlr1"
C3/49C7:	A924    	LDA #$24       ; Color: Gray
C3/49C9:	8009    	BRA $49D4      ; Draw "Cntlr2"

Fork: Draw "Cntlr1"
C3/49CB:	8529    	STA $29        ; Set palette
C3/49CD:	A00B50  	LDY #$500B     ; Text pointer
C3/49D0:	20F902  	JSR $02F9      ; Draw "Cntlr1"
C3/49D3:	60      	RTS

Fork: Draw "Cntlr2"
C3/49D4:	8529    	STA $29        ; Set palette
C3/49D6:	A01650  	LDY #$5016     ; Text pointer
C3/49D9:	20F902  	JSR $02F9      ; Draw "Cntlr2"
C3/49DC:	60      	RTS

Set Window 2 positions per scanline for Controller menu
C3/49DD:	A901    	LDA #$01       ; 2Rx1B to PPU
C3/49DF:	8D5043  	STA $4350      ; Set DMA mode
C3/49E2:	A928    	LDA #$28       ; $2128, $2129
C3/49E4:	8D5143  	STA $4351      ; To Win 2 L+R
C3/49E7:	A0FC49  	LDY #$49FC     ; C3/49FC
C3/49EA:	8C5243  	STY $4352      ; Set src LBs
C3/49ED:	A9C3    	LDA #$C3       ; Bank: C3
C3/49EF:	8D5443  	STA $4354      ; Set src HB
C3/49F2:	A9C3    	LDA #$C3       ; ...
C3/49F4:	8D5743  	STA $4357      ; Set indir HB
C3/49F7:	A920    	LDA #$20       ; Channel: 5
C3/49F9:	0443    	TSB $43        ; Queue HDMA-5
C3/49FB:	60      	RTS

Window 2 positions per scanline for Controller menu
C3/49FC:	27 FF FF	; 255, 255
C3/49FF:	30 08 F7	; 8, 247
C3/4A02:	68 FF FF	; 255, 255
C3/4A05:	10 08 F7	; 8, 247
C3/4A08:	10 FF FF	; 255, 255
C3/4A0B:	00      	; End

Load navigation data for Controller menu
C3/4A0C:	A01B4A  	LDY #$4A1B     ; C3/4A1B
C3/4A0F:	4C8106  	JMP $0681      ; Load navig data

Handle D-Pad for Controller menu
C3/4A12:	20B007  	JSR $07B0      ; Handle D-Pad
C3/4A15:	A0204A  	LDY #$4A20     ; C3/4A20
C3/4A18:	4CC306  	JMP $06C3      ; Relocate cursor

Navigation data for Controller menu
C3/4A1B:	80      	; Wraps vertically
C3/4A1C:	00      	; Initial column
C3/4A1D:	00      	; Initial row
C3/4A1E:	01      	; 1 column
C3/4A1F:	04      	; 4 rows

Cursor positions for Controller menu
C3/4A20:	507B    	; Member 1
C3/4A22:	508B    	; Member 2
C3/4A24:	509B    	; Member 3
C3/4A26:	50AB    	; Member 4

Window layout for Controller menu
C3/4A28:	0B5B1C0B	; 30x13 at $5B0B

Draw Button Settings menu
C3/4A2C:	A07C4A  	LDY #$4A7C     ; C3/4A7C
C3/4A2F:	20C403  	JSR $03C4      ; Draw main box
C3/4A32:	A0804A  	LDY #$4A80     ; C3/4A80
C3/4A35:	20C403  	JSR $03C4      ; Draw title box
C3/4A38:	20BD0E  	JSR $0EBD      ; Upload windows
C3/4A3B:	20A971  	JSR $71A9      ; Clear BG1 map A
C3/4A3E:	20AD71  	JSR $71AD      ; Clear BG1 map B
C3/4A41:	20D071  	JSR $71D0      ; Clear BG3 map A
C3/4A44:	20D571  	JSR $71D5      ; Clear BG3 map B
C3/4A47:	A92C    	LDA #$2C       ; Palette 3
C3/4A49:	8529    	STA $29        ; Color: Blue
C3/4A4B:	A22150  	LDX #$5021     ; Text ptrs loc
C3/4A4E:	A01000  	LDY #$0010     ; Strings: 8
C3/4A51:	204E71  	JSR $714E      ; Draw title, etc.
C3/4A54:	A92C    	LDA #$2C       ; Palette 3
C3/4A56:	8529    	STA $29        ; Color: Blue
C3/4A58:	A23150  	LDX #$5031     ; Text ptrs loc
C3/4A5B:	A00E00  	LDY #$000E     ; Strings: 7
C3/4A5E:	202C71  	JSR $712C      ; Draw key names
C3/4A61:	20F64A  	JSR $4AF6      ; Draw A options
C3/4A64:	20224B  	JSR $4B22      ; Draw B options
C3/4A67:	20444B  	JSR $4B44      ; Draw X options
C3/4A6A:	20684B  	JSR $4B68      ; Draw Y options
C3/4A6D:	208A4B  	JSR $4B8A      ; Draw L options
C3/4A70:	20AE4B  	JSR $4BAE      ; Draw R options
C3/4A73:	20D04B  	JSR $4BD0      ; Draw S options
C3/4A76:	20930E  	JSR $0E93      ; Upload BG1 A+B
C3/4A79:	4CD90E  	JMP $0ED9      ; Upload text

Window layout for Button Settings menu
C3/4A7C:	0B591C16	; 30x24 at $590B (Main)
C3/4A80:	B3580802	; 10x04 at $58B3 (Title)

Set to condense text in Button Settings menu
C3/4A84:	A902    	LDA #$02       ; 1Rx2B to PPU
C3/4A86:	8D5043  	STA $4350      ; Set CH5 mode
C3/4A89:	A912    	LDA #$12       ; $2112
C3/4A8B:	8D5143  	STA $4351      ; To BG3 V-Scroll
C3/4A8E:	A0A34A  	LDY #$4AA3     ; C3/4AA3
C3/4A91:	8C5243  	STY $4352      ; Set CH5 src LBs
C3/4A94:	A9C3    	LDA #$C3       ; Bank: C3
C3/4A96:	8D5443  	STA $4354      ; Set CH5 src HB
C3/4A99:	A9C3    	LDA #$C3       ; ...
C3/4A9B:	8D5743  	STA $4357      ; Set indir HB
C3/4A9E:	A920    	LDA #$20       ; Channel: 5
C3/4AA0:	0443    	TSB $43        ; Queue HDMA-5
C3/4AA2:	60      	RTS

BG3 text shifting table for Button Settings menu
C3/4AA3:	2F 0000 	; Title, A
C3/4AA6:	0C 0400 	; A's options
C3/4AA9:	0C 0800 	; B
C3/4AAC:	0C 0C00 	; B's options
C3/4AAF:	0C 1000 	; X
C3/4AB2:	0C 1400 	; X's options
C3/4AB5:	0C 1800 	; Y
C3/4AB8:	0C 1C00 	; Y's options
C3/4ABB:	0C 2000 	; L
C3/4ABE:	0C 2400 	; L's options
C3/4AC1:	0C 2800 	; R
C3/4AC4:	0C 2C00 	; R's options
C3/4AC7:	0C 3000 	; Select
C3/4ACA:	0C 3400 	; Select's options
C3/4ACD:	0C 3800 	; Nothing
C3/4AD0:	0C 3C00 	; Nothing
C3/4AD3:	00      	; End

Load navigation data for Button Settings menu
C3/4AD4:	A0E34A  	LDY #$4AE3     ; C3/4AE3
C3/4AD7:	4C8106  	JMP $0681      ; Load navig data

Handle D-Pad for Button Settings menu
C3/4ADA:	20B007  	JSR $07B0      ; Handle D-Pad
C3/4ADD:	A0E84A  	LDY #$4AE8     ; C3/4AE8
C3/4AE0:	4CC306  	JMP $06C3      ; Relocate cursor

Navigation data for Button Settings menu
C3/4AE3:	00      	; Wraps on all sides
C3/4AE4:	00      	; Initial column
C3/4AE5:	00      	; Initial row
C3/4AE6:	01      	; 1 column
C3/4AE7:	07      	; 7 rows

Cursor positions for Button Settings menu
C3/4AE8:	1023    	; A
C3/4AEA:	103B    	; B
C3/4AEC:	1053    	; X
C3/4AEE:	106B    	; Y
C3/4AF0:	1083    	; L
C3/4AF2:	109B    	; R
C3/4AF4:	10B3    	; Select

Draw options for A in button settings
C3/4AF6:	A924    	LDA #$24       ; Palette 1
C3/4AF8:	8529    	STA $29        ; Color: Gray
C3/4AFA:	A23F50  	LDX #$503F     ; Text ptrs loc
C3/4AFD:	A00C00  	LDY #$000C     ; Strings: 6
C3/4B00:	204E71  	JSR $714E      ; Draw all in gray
C3/4B03:	7B      	TDC            ; Clear A
C3/4B04:	AD501D  	LDA $1D50      ; Game options
C3/4B07:	29F0    	AND #$F0       ; Action for A
C3/4B09:	4A      	LSR A          ; Put in b3-b6
C3/4B0A:	4A      	LSR A          ; Put in b2-b5
C3/4B0B:	4A      	LSR A          ; Put in b1-b4
C3/4B0C:	AA      	TAX            ; Index it
C3/4B0D:	C220    	REP #$20       ; 16-bit A
C3/4B0F:	BF3D50C3	LDA $C3503D,X  ; Text pointer
C3/4B13:	85E7    	STA $E7        ; Set src LBs
C3/4B15:	E220    	SEP #$20       ; 8-bit A
C3/4B17:	A9C3    	LDA #$C3       ; Bank: C3
C3/4B19:	85E9    	STA $E9        ; Set src HB
C3/4B1B:	A920    	LDA #$20       ; Palette 0
C3/4B1D:	8529    	STA $29        ; Color: User's
C3/4B1F:	4C2C03  	JMP $032C      ; Draw lit option

Draw options for B in button settings
C3/4B22:	A924    	LDA #$24       ; Palette 1
C3/4B24:	8529    	STA $29        ; Color: Gray
C3/4B26:	A24B50  	LDX #$504B     ; Text ptrs loc
C3/4B29:	A00C00  	LDY #$000C     ; Strings: 6
C3/4B2C:	204E71  	JSR $714E      ; Draw all in gray
C3/4B2F:	7B      	TDC            ; Clear A
C3/4B30:	AD501D  	LDA $1D50      ; Game options
C3/4B33:	290F    	AND #$0F       ; Action for B
C3/4B35:	0A      	ASL A          ; Double it
C3/4B36:	AA      	TAX            ; Index it
C3/4B37:	C220    	REP #$20       ; 16-bit A
C3/4B39:	BF4950C3	LDA $C35049,X  ; Text pointer
C3/4B3D:	85E7    	STA $E7        ; Set src LBs
C3/4B3F:	E220    	SEP #$20       ; 8-bit A
C3/4B41:	4C174B  	JMP $4B17      ; Draw lit option

Draw options for X in button settings
C3/4B44:	A924    	LDA #$24       ; Palette 1
C3/4B46:	8529    	STA $29        ; Color: Gray
C3/4B48:	A25750  	LDX #$5057     ; Text ptrs loc
C3/4B4B:	A00C00  	LDY #$000C     ; Strings: 6
C3/4B4E:	204E71  	JSR $714E      ; Draw all in gray
C3/4B51:	7B      	TDC            ; Clear A
C3/4B52:	AD511D  	LDA $1D51      ; Game options
C3/4B55:	29F0    	AND #$F0       ; Action for X
C3/4B57:	4A      	LSR A          ; Put in b3-b6
C3/4B58:	4A      	LSR A          ; Put in b2-b5
C3/4B59:	4A      	LSR A          ; Put in b1-b4
C3/4B5A:	AA      	TAX            ; Index it
C3/4B5B:	C220    	REP #$20       ; 16-bit A
C3/4B5D:	BF5550C3	LDA $C35055,X  ; Text pointer
C3/4B61:	85E7    	STA $E7        ; Set src LBs
C3/4B63:	E220    	SEP #$20       ; 8-bit A
C3/4B65:	4C174B  	JMP $4B17      ; Draw lit option

Draw options for Y in button settings
C3/4B68:	A924    	LDA #$24       ; Palette 1
C3/4B6A:	8529    	STA $29        ; Color: Gray
C3/4B6C:	A26350  	LDX #$5063     ; Text ptrs loc
C3/4B6F:	A00C00  	LDY #$000C     ; Strings: 6
C3/4B72:	204E71  	JSR $714E      ; Draw all in gray
C3/4B75:	7B      	TDC            ; Clear A
C3/4B76:	AD511D  	LDA $1D51      ; Game options
C3/4B79:	290F    	AND #$0F       ; Action for Y
C3/4B7B:	0A      	ASL A          ; Double it
C3/4B7C:	AA      	TAX            ; Index it
C3/4B7D:	C220    	REP #$20       ; 16-bit A
C3/4B7F:	BF6150C3	LDA $C35061,X  ; Text pointer
C3/4B83:	85E7    	STA $E7        ; Set src LBs
C3/4B85:	E220    	SEP #$20       ; 8-bit A
C3/4B87:	4C174B  	JMP $4B17      ; Draw lit option

Draw options for L in button settings
C3/4B8A:	A924    	LDA #$24       ; Palette 1
C3/4B8C:	8529    	STA $29        ; Color: Gray
C3/4B8E:	A26F50  	LDX #$506F     ; Text ptrs loc
C3/4B91:	A00C00  	LDY #$000C     ; Strings: 6
C3/4B94:	204E71  	JSR $714E      ; Draw all in gray
C3/4B97:	7B      	TDC            ; Clear A
C3/4B98:	AD521D  	LDA $1D52      ; Game options
C3/4B9B:	29F0    	AND #$F0       ; Action for L
C3/4B9D:	4A      	LSR A          ; Put in b3-b6
C3/4B9E:	4A      	LSR A          ; Put in b2-b5
C3/4B9F:	4A      	LSR A          ; Put in b1-b4
C3/4BA0:	AA      	TAX            ; Index it
C3/4BA1:	C220    	REP #$20       ; 16-bit A
C3/4BA3:	BF6D50C3	LDA $C3506D,X  ; Text pointer
C3/4BA7:	85E7    	STA $E7        ; Set src LBs
C3/4BA9:	E220    	SEP #$20       ; 8-bit A
C3/4BAB:	4C174B  	JMP $4B17      ; Draw lit option

Draw options for R in button settings
C3/4BAE:	A924    	LDA #$24       ; Palette 1
C3/4BB0:	8529    	STA $29        ; Color: Gray
C3/4BB2:	A27B50  	LDX #$507B     ; Text ptrs loc
C3/4BB5:	A00C00  	LDY #$000C     ; Strings: 6
C3/4BB8:	204E71  	JSR $714E      ; Draw all in gray
C3/4BBB:	7B      	TDC            ; Clear A
C3/4BBC:	AD521D  	LDA $1D52      ; Game options
C3/4BBF:	290F    	AND #$0F       ; Action for R
C3/4BC1:	0A      	ASL A          ; Double it
C3/4BC2:	AA      	TAX            ; Index it
C3/4BC3:	C220    	REP #$20       ; 16-bit A
C3/4BC5:	BF7950C3	LDA $C35079,X  ; Text pointer
C3/4BC9:	85E7    	STA $E7        ; Set src LBs
C3/4BCB:	E220    	SEP #$20       ; 8-bit A
C3/4BCD:	4C174B  	JMP $4B17      ; Draw lit option

Draw options for Select in button settings
C3/4BD0:	A924    	LDA #$24       ; Palette 1
C3/4BD2:	8529    	STA $29        ; Color: Gray
C3/4BD4:	A28750  	LDX #$5087     ; Text ptrs loc
C3/4BD7:	A00C00  	LDY #$000C     ; Strings: 6
C3/4BDA:	204E71  	JSR $714E      ; Draw all in gray
C3/4BDD:	7B      	TDC            ; Clear A
C3/4BDE:	AD531D  	LDA $1D53      ; Game options
C3/4BE1:	290F    	AND #$0F       ; Action for SEL...
C3/4BE3:	0A      	ASL A          ; Double it
C3/4BE4:	AA      	TAX            ; Index it
C3/4BE5:	C220    	REP #$20       ; 16-bit A
C3/4BE7:	BF8550C3	LDA $C35085,X  ; Text pointer
C3/4BEB:	85E7    	STA $E7        ; Set src LBs
C3/4BED:	E220    	SEP #$20       ; 8-bit A
C3/4BEF:	4C174B  	JMP $4B17      ; Draw lit option

Handle changes in Button Settings menu
C3/4BF2:	7B      	TDC            ; Clear A
C3/4BF3:	A54B    	LDA $4B        ; Cursor slot
C3/4BF5:	0A      	ASL A          ; Double it
C3/4BF6:	AA      	TAX            ; Index it
C3/4BF7:	7CFA4B  	JMP ($4BFA,X)  ; Apply changes

Jump table for the above
C3/4BFA:	084C    	; A
C3/4BFC:	444C    	; B
C3/4BFE:	744C    	; X
C3/4C00:	B04C    	; Y
C3/4C02:	E04C    	; L
C3/4C04:	1C4D    	; R
C3/4C06:	4C4D    	; Select

Update action assigned to the A button
C3/4C08:	AD501D  	LDA $1D50      ; Game options
C3/4C0B:	29F0    	AND #$F0       ; Action for A
C3/4C0D:	4A      	LSR A          ; Put in b3-b6
C3/4C0E:	4A      	LSR A          ; Put in b2-b5
C3/4C0F:	4A      	LSR A          ; Put in b1-b4
C3/4C10:	4A      	LSR A          ; Now 0-7
C3/4C11:	85E0    	STA $E0        ; Memorize it
C3/4C13:	A50B    	LDA $0B        ; Semi-auto keys
C3/4C15:	8901    	BIT #$01       ; Pushing left?
C3/4C17:	F00B    	BEQ $4C24      ; Branch if so

Fork: Pushing right
C3/4C19:	A5E0    	LDA $E0        ; Lit option
C3/4C1B:	C906    	CMP #$06       ; Rightmost?
C3/4C1D:	F004    	BEQ $4C23      ; Exit if so
C3/4C1F:	E6E0    	INC $E0        ; Move right
C3/4C21:	800C    	BRA $4C2F      ; Apply changes
C3/4C23:	60      	RTS

Fork: Pushing left
C3/4C24:	A5E0    	LDA $E0        ; Lit option
C3/4C26:	C901    	CMP #$01       ; Leftmost?
C3/4C28:	F004    	BEQ $4C2E      ; Exit if so
C3/4C2A:	C6E0    	DEC $E0        ; Move left
C3/4C2C:	8001    	BRA $4C2F      ; Apply changes
C3/4C2E:	60      	RTS

Fork: Apply changes
C3/4C2F:	A5E0    	LDA $E0        ; Chosen action
C3/4C31:	0A      	ASL A          ; Put in b1-b4
C3/4C32:	0A      	ASL A          ; Put in b2-b5
C3/4C33:	0A      	ASL A          ; Put in b3-b6
C3/4C34:	0A      	ASL A          ; Put in b4-b7
C3/4C35:	85E0    	STA $E0        ; Save changes
C3/4C37:	AD501D  	LDA $1D50      ; Game options
C3/4C3A:	290F    	AND #$0F       ; Clear A action
C3/4C3C:	05E0    	ORA $E0        ; Set chosen one
C3/4C3E:	8D501D  	STA $1D50      ; Save changes
C3/4C41:	4CF64A  	JMP $4AF6      ; Redraw options

Update action assigned to the B button
C3/4C44:	AD501D  	LDA $1D50      ; Game options
C3/4C47:	290F    	AND #$0F       ; Action for B
C3/4C49:	85E0    	STA $E0        ; Memorize it
C3/4C4B:	A50B    	LDA $0B        ; Semi-auto keys
C3/4C4D:	8901    	BIT #$01       ; Pushing left?
C3/4C4F:	F00B    	BEQ $4C5C      ; Branch if so

Fork: Pushing right
C3/4C51:	A5E0    	LDA $E0        ; Lit option
C3/4C53:	C906    	CMP #$06       ; Rightmost?
C3/4C55:	F004    	BEQ $4C5B      ; Exit if so
C3/4C57:	E6E0    	INC $E0        ; Move right
C3/4C59:	800C    	BRA $4C67      ; Apply changes
C3/4C5B:	60      	RTS

Fork: Pushing left
C3/4C5C:	A5E0    	LDA $E0        ; Lit option
C3/4C5E:	C901    	CMP #$01       ; Leftmost?
C3/4C60:	F004    	BEQ $4C66      ; Exit if so
C3/4C62:	C6E0    	DEC $E0        ; Move right
C3/4C64:	8001    	BRA $4C67      ; Apply changes
C3/4C66:	60      	RTS

Fork: Apply changes
C3/4C67:	AD501D  	LDA $1D50      ; Game options
C3/4C6A:	29F0    	AND #$F0       ; Clear B action
C3/4C6C:	05E0    	ORA $E0        ; Set chosen one
C3/4C6E:	8D501D  	STA $1D50      ; Save changes
C3/4C71:	4C224B  	JMP $4B22      ; Redraw options

Update action assigned to the X button
C3/4C74:	AD511D  	LDA $1D51      ; Game options
C3/4C77:	29F0    	AND #$F0       ; Action for X
C3/4C79:	4A      	LSR A          ; Put in b3-b6
C3/4C7A:	4A      	LSR A          ; Put in b2-b5
C3/4C7B:	4A      	LSR A          ; Put in b1-b4
C3/4C7C:	4A      	LSR A          ; Now 0-7
C3/4C7D:	85E0    	STA $E0        ; Memorize it
C3/4C7F:	A50B    	LDA $0B        ; Semi-auto keys
C3/4C81:	8901    	BIT #$01       ; Pushing left?
C3/4C83:	F00B    	BEQ $4C90      ; Branch if so

Fork: Pushing right
C3/4C85:	A5E0    	LDA $E0        ; Lit option
C3/4C87:	C906    	CMP #$06       ; Rightmost?
C3/4C89:	F004    	BEQ $4C8F      ; Exit if so
C3/4C8B:	E6E0    	INC $E0        ; Move right
C3/4C8D:	800C    	BRA $4C9B      ; Apply changes
C3/4C8F:	60      	RTS

Fork: Pushing left
C3/4C90:	A5E0    	LDA $E0        ; Lit option
C3/4C92:	C901    	CMP #$01       ; Leftmost?
C3/4C94:	F004    	BEQ $4C9A      ; Exit if so
C3/4C96:	C6E0    	DEC $E0        ; Move left
C3/4C98:	8001    	BRA $4C9B      ; Apply changes
C3/4C9A:	60      	RTS

Fork: Apply changes
C3/4C9B:	A5E0    	LDA $E0        ; Chosen action
C3/4C9D:	0A      	ASL A          ; Put in b1-b4
C3/4C9E:	0A      	ASL A          ; Put in b2-b5
C3/4C9F:	0A      	ASL A          ; Put in b3-b6
C3/4CA0:	0A      	ASL A          ; Put in b4-b7
C3/4CA1:	85E0    	STA $E0        ; Save changes
C3/4CA3:	AD511D  	LDA $1D51      ; Game options
C3/4CA6:	290F    	AND #$0F       ; Clear X action
C3/4CA8:	05E0    	ORA $E0        ; Set chosen one
C3/4CAA:	8D511D  	STA $1D51      ; Save changes
C3/4CAD:	4C444B  	JMP $4B44      ; Redraw options

Update action assigned to the Y button
C3/4CB0:	AD511D  	LDA $1D51      ; Game options
C3/4CB3:	290F    	AND #$0F       ; Action for Y
C3/4CB5:	85E0    	STA $E0        ; Memorize it
C3/4CB7:	A50B    	LDA $0B        ; Semi-auto keys
C3/4CB9:	8901    	BIT #$01       ; Pushing left?
C3/4CBB:	F00B    	BEQ $4CC8      ; Branch if so

Fork: Pushing right
C3/4CBD:	A5E0    	LDA $E0        ; Lit option
C3/4CBF:	C906    	CMP #$06       ; Rightmost?
C3/4CC1:	F004    	BEQ $4CC7      ; Exit if so
C3/4CC3:	E6E0    	INC $E0        ; Move right
C3/4CC5:	800C    	BRA $4CD3      ; Apply changes
C3/4CC7:	60      	RTS

Fork: Pushing left
C3/4CC8:	A5E0    	LDA $E0        ; Lit option
C3/4CCA:	C901    	CMP #$01       ; Leftmost?
C3/4CCC:	F004    	BEQ $4CD2      ; Exit if so
C3/4CCE:	C6E0    	DEC $E0        ; Move left
C3/4CD0:	8001    	BRA $4CD3      ; Apply changes
C3/4CD2:	60      	RTS

Fork: Apply changes
C3/4CD3:	AD511D  	LDA $1D51      ; Game options
C3/4CD6:	29F0    	AND #$F0       ; Clear Y action
C3/4CD8:	05E0    	ORA $E0        ; Set chosen one
C3/4CDA:	8D511D  	STA $1D51      ; Save changes
C3/4CDD:	4C684B  	JMP $4B68      ; Redraw options

Update action assigned to the L button
C3/4CE0:	AD521D  	LDA $1D52      ; Game options
C3/4CE3:	29F0    	AND #$F0       ; Action for L
C3/4CE5:	4A      	LSR A          ; Put in b3-b6
C3/4CE6:	4A      	LSR A          ; Put in b2-b5
C3/4CE7:	4A      	LSR A          ; Put in b1-b4
C3/4CE8:	4A      	LSR A          ; Now 0-7
C3/4CE9:	85E0    	STA $E0        ; Memorize it
C3/4CEB:	A50B    	LDA $0B        ; Semi-auto keys
C3/4CED:	8901    	BIT #$01       ; Pushing left?
C3/4CEF:	F00B    	BEQ $4CFC      ; Branch if so

Fork: Pushing right
C3/4CF1:	A5E0    	LDA $E0        ; Lit option
C3/4CF3:	C906    	CMP #$06       ; Rightmost?
C3/4CF5:	F004    	BEQ $4CFB      ; Exit if so
C3/4CF7:	E6E0    	INC $E0        ; Move right
C3/4CF9:	800C    	BRA $4D07      ; Apply changes
C3/4CFB:	60      	RTS

Fork: Pushing left
C3/4CFC:	A5E0    	LDA $E0        ; Lit option
C3/4CFE:	C901    	CMP #$01       ; Leftmost?
C3/4D00:	F004    	BEQ $4D06      ; Exit if so
C3/4D02:	C6E0    	DEC $E0        ; Move left
C3/4D04:	8001    	BRA $4D07      ; Apply changes
C3/4D06:	60      	RTS

Fork: Apply changes
C3/4D07:	A5E0    	LDA $E0        ; Chosen action
C3/4D09:	0A      	ASL A          ; Put in b1-b4
C3/4D0A:	0A      	ASL A          ; Put in b2-b5
C3/4D0B:	0A      	ASL A          ; Put in b3-b6
C3/4D0C:	0A      	ASL A          ; Put in b4-b7
C3/4D0D:	85E0    	STA $E0        ; Save changes
C3/4D0F:	AD521D  	LDA $1D52      ; Game options
C3/4D12:	290F    	AND #$0F       ; Clear L action
C3/4D14:	05E0    	ORA $E0        ; Set chosen one
C3/4D16:	8D521D  	STA $1D52      ; Save changes
C3/4D19:	4C8A4B  	JMP $4B8A      ; Redraw options

Update action assigned to the R button
C3/4D1C:	AD521D  	LDA $1D52      ; Game options
C3/4D1F:	290F    	AND #$0F       ; Action for L
C3/4D21:	85E0    	STA $E0        ; Memorize it
C3/4D23:	A50B    	LDA $0B        ; Semi-auto keys
C3/4D25:	8901    	BIT #$01       ; Pushing left?
C3/4D27:	F00B    	BEQ $4D34      ; Branch if so

Fork: Pushing right
C3/4D29:	A5E0    	LDA $E0        ; Lit option
C3/4D2B:	C906    	CMP #$06       ; Rightmost?
C3/4D2D:	F004    	BEQ $4D33      ; Exit if so
C3/4D2F:	E6E0    	INC $E0        ; Move right
C3/4D31:	800C    	BRA $4D3F      ; Apply changes
C3/4D33:	60      	RTS

Fork: Pushing left
C3/4D34:	A5E0    	LDA $E0        ; Lit option
C3/4D36:	C901    	CMP #$01       ; Leftmost?
C3/4D38:	F004    	BEQ $4D3E      ; Exit if so
C3/4D3A:	C6E0    	DEC $E0        ; Move left
C3/4D3C:	8001    	BRA $4D3F      ; Apply changes
C3/4D3E:	60      	RTS

Fork: Apply changes
C3/4D3F:	AD521D  	LDA $1D52      ; Game options
C3/4D42:	29F0    	AND #$F0       ; Clear R action
C3/4D44:	05E0    	ORA $E0        ; Set chosen one
C3/4D46:	8D521D  	STA $1D52      ; Save changes
C3/4D49:	4CAE4B  	JMP $4BAE      ; Redraw options

Update action assigned to Select
C3/4D4C:	AD531D  	LDA $1D53      ; Game options
C3/4D4F:	290F    	AND #$0F       ; Action for SEL
C3/4D51:	85E0    	STA $E0        ; Memorize it
C3/4D53:	A50B    	LDA $0B        ; Semi-auto keys
C3/4D55:	8901    	BIT #$01       ; Pushing left?
C3/4D57:	F00B    	BEQ $4D64      ; Branch if so

Fork: Pushing right
C3/4D59:	A5E0    	LDA $E0        ; Lit option
C3/4D5B:	C906    	CMP #$06       ; Rightmost?
C3/4D5D:	F004    	BEQ $4D63      ; Exit if so
C3/4D5F:	E6E0    	INC $E0        ; Move right
C3/4D61:	800C    	BRA $4D6F      ; Apply changes
C3/4D63:	60      	RTS

Fork: Pushing left
C3/4D64:	A5E0    	LDA $E0        ; Lit option
C3/4D66:	C901    	CMP #$01       ; Leftmost?
C3/4D68:	F004    	BEQ $4D6E      ; Exit if so
C3/4D6A:	C6E0    	DEC $E0        ; Move left
C3/4D6C:	8001    	BRA $4D6F      ; Apply changes
C3/4D6E:	60      	RTS

Fork: Apply changes
C3/4D6F:	AD531D  	LDA $1D53      ; Game options
C3/4D72:	29F0    	AND #$F0       ; Clear SEL action
C3/4D74:	05E0    	ORA $E0        ; Set chosen one
C3/4D76:	8D531D  	STA $1D53      ; Save changes
C3/4D79:	4CD04B  	JMP $4BD0      ; Redraw options

Validate changes made in Button Settings menu
C3/4D7C:	AD501D  	LDA $1D50      ; Game options
C3/4D7F:	290F    	AND #$0F       ; Action for B
C3/4D81:	8F899D7E	STA $7E9D89    ; Add to buffer
C3/4D85:	AD501D  	LDA $1D50      ; Game options
C3/4D88:	29F0    	AND #$F0       ; Action for A
C3/4D8A:	4A      	LSR A          ; Put in b3-b6
C3/4D8B:	4A      	LSR A          ; Put in b2-b5
C3/4D8C:	4A      	LSR A          ; Put in b1-b4
C3/4D8D:	4A      	LSR A          ; Now 0-7
C3/4D8E:	8F8A9D7E	STA $7E9D8A    ; Add to buffer
C3/4D92:	AD511D  	LDA $1D51      ; Game options
C3/4D95:	290F    	AND #$0F       ; Action for Y
C3/4D97:	8F8B9D7E	STA $7E9D8B    ; Add to buffer
C3/4D9B:	AD511D  	LDA $1D51      ; Game options
C3/4D9E:	29F0    	AND #$F0       ; Action for X
C3/4DA0:	4A      	LSR A          ; Put in b3-b6
C3/4DA1:	4A      	LSR A          ; Put in b2-b5
C3/4DA2:	4A      	LSR A          ; Put in b1-b4
C3/4DA3:	4A      	LSR A          ; Now 0-7
C3/4DA4:	8F8C9D7E	STA $7E9D8C    ; Add to buffer
C3/4DA8:	AD521D  	LDA $1D52      ; Game options
C3/4DAB:	290F    	AND #$0F       ; Action for R
C3/4DAD:	8F8D9D7E	STA $7E9D8D    ; Add to buffer
C3/4DB1:	AD521D  	LDA $1D52      ; Game options
C3/4DB4:	29F0    	AND #$F0       ; Action for L
C3/4DB6:	4A      	LSR A          ; Put in b3-b6
C3/4DB7:	4A      	LSR A          ; Put in b2-b5
C3/4DB8:	4A      	LSR A          ; Put in b1-b4
C3/4DB9:	4A      	LSR A          ; Now 0-7
C3/4DBA:	8F8E9D7E	STA $7E9D8E    ; Add to buffer
C3/4DBE:	AD531D  	LDA $1D53      ; Game options
C3/4DC1:	290F    	AND #$0F       ; Action for SEL
C3/4DC3:	8F8F9D7E	STA $7E9D8F    ; Add to buffer

Fork: Check if all actions are assigned
C3/4DC7:	A901    	LDA #$01       ; 1st: Confirm
C3/4DC9:	85E0    	STA $E0        ; Set cur action
C3/4DCB:	A400    	LDY $00        ; Actions done: 0

Fork: Check if current action is assigned
C3/4DCD:	A600    	LDX $00        ; 1st key: A
C3/4DCF:	BF899D7E	LDA $7E9D89,X  ; Key's action
C3/4DD3:	C5E0    	CMP $E0        ; Matches ours?
C3/4DD5:	F008    	BEQ $4DDF      ; Branch if so
C3/4DD7:	E8      	INX            ; Key index +1
C3/4DD8:	E00700  	CPX #$0007     ; Done all 7?
C3/4DDB:	D0F2    	BNE $4DCF      ; Loop if not
C3/4DDD:	8A      	TXA            ; Valid: N
C3/4DDE:	60      	RTS

Fork: Check next action
C3/4DDF:	E6E0    	INC $E0        ; Action num +1
C3/4DE1:	C8      	INY            ; One more done
C3/4DE2:	C00600  	CPY #$0006     ; Done all 6?
C3/4DE5:	D0E6    	BNE $4DCD      ; Loop if not
C3/4DE7:	7B      	TDC            ; Valid: Y
C3/4DE8:	60      	RTS

Forget memorized cursor positions for main menu
C3/4DE9:	7B      	TDC            ; Clear A
C3/4DEA:	AA      	TAX            ; Index: 0
C3/4DEB:	9D2B02  	STA $022B,X    ; Clear position
C3/4DEE:	E8      	INX            ; Index +1
C3/4DEF:	E01F00  	CPX #$001F     ; At $024A?
C3/4DF2:	D0F7    	BNE $4DEB      ; Loop if not
C3/4DF4:	60      	RTS

Text pointers for Config page 1
C3/4DF5:	FD4D    	               ; Controller
C3/4DF7:	784E    	               ; Cursor
C3/4DF9:	0E4E    	               ; Fast
C3/4DFB:	144E    	               ; Slow

Positioned text for Config page 1
C3/4DFD:	8F3D 72B886AEC5A6C500          ; Controller
C3/4E07:	B539 88CA8C8600                ; Wait
C3/4E0E:	653A 61B18D00                  ; Fast
C3/4E14:	753A 917D8D00                  ; Slow
C3/4E1A:	353B 7FB977C16F00              ; Short
C3/4E22:	A53B 90B800                    ; On
C3/4E27:	B53B 906400                    ; Off
C3/4E2C:	253C 7884AC9000                ; Stereo
C3/4E33:	353C A49AA6AA00                ; Mono
C3/4E3A:	B53C 6D916F00                  ; Memory
C3/4E40:	253D 758D6DC38900              ; Optimum
C3/4E48:	A53D 9AC59CAA00                ; Normal
C3/4E4F:	B53D 6A787EA000                ; Custom
C3/4E56:	353E 9CAA8000                  ; Multiple
C3/4E5C:	253A 54FF55FF56FF57FF58FF5900  ; 1 2 3 4 5 6
C3/4E6A:	A53A 54FF55FF56FF57FF58FF5900  ; 1 2 3 4 5 6
C3/4E78:	8F3C 6AC57CAA8D8100            ; Cursor

Text pointers for Config page 1
C3/4E81:	974E    	               ; Bat.Mode
C3/4E83:	A04E    	               ; Bat.Speed
C3/4E85:	A74E    	               ; Msg.Speed
C3/4E87:	AF4E    	               ; Cmd.Set
C3/4E89:	B94E    	               ; Gauge
C3/4E8B:	BF4E    	               ; Sound
C3/4E8D:	C64E    	               ; Reequip

Positioned text for Config page 1
C3/4E8F:	BB78 72B864C62E00              ; Config
C3/4E97:	4F39 2086AAA4C54600            ; Bat.Mode
C3/4EA0:	D339 784BC54600                ; Bat.Speed
C3/4EA7:	533A A2BC7AC53600              ; Msg.Speed
C3/4ECF:	D33A 729CB84677858D00          ; Cmd.Set
C3/4EB9:	533B 30C53600                  ; Gauge
C3/4EBF:	CF3B 7488B84600                ; Sound
C3/4EC6:	CF3C 758D7D892300              ; Reequip
C3/4ECE:	6539 8A6E84C64800              ; Active
C3/4ED6:	E53A 88C6B8468800              ; Window
C3/4EDE:	653C A5477900                  ; Reset
C3/4EE4:	F53C 79278561397900            ; Empty
C3/4EED:	E53D 76B82EAA00                ; Single

Text pointers for Config page 2
C3/4EF4:	0C4F    	               ; Mag.Order
C3/4EF6:	184F    	               ; Window
C3/4EF8:	204F    	               ; Color
C3/4EFA:	354F    	               ; ========
C3/4EFC:	424F    	               ; ========
C3/4EFE:	4F4F    	               ; ========
C3/4F00:	5C4F    	               ; R
C3/4F02:	604F    	               ; G
C3/4F04:	644F    	               ; B
C3/4F06:	264F    	               ; 1..
C3/4F08:	2B4F    	               ; 2..
C3/4F0A:	304F    	               ; 3..

Positioned text for Config page 2
C3/4F0C:	4F41 9D69899B93A7236B7F00      ; Mag.Order
C3/4F18:	4F43 88C6B8468800              ; Window
C3/4F20:	CF43 6AA6C500                  ; Color
C3/4F26:	2542 54C700  	               ; 1..
C3/4F2B:	A542 55C700  	               ; 2..
C3/4F30:	2543 56C700  	               ; 3..
C3/4F35:	2D45 1910101010101010101A00    ; ========
C3/4F42:	AD45 1910101010101010101A00    ; ========
C3/4F4F:	2D46 1910101010101010101A00    ; ========
C3/4F5C:	2545 3100    	               ; R
C3/4F60:	A545 2600    	               ; G
C3/4F64:	2546 2100    	               ; B
C3/4F68:	A543 54FF55FF56FF57FF58FF59FF  ; 1 2 3 4 5 6 7 8
        	     5AFF5B00
C3/4F7A:	A541 54FF55FF56FF57FF58FF5900  ; 1 2 3 4 5 6
C3/4F88:	2544 64CCB88600                ; Font
C3/4F8F:	F543 88C6B8468800              ; Window
C3/4F97:	FB43 A5477900	               ; Restore (unused)
C3/4F9D:	B544 0102030405060700          ; Palette squares

Mag.Order strings
C3/4FA7:	6B8D656F	               ; Healing
C3/4FAB:	7389316D	               ; Attack
C3/4FAF:	6BB97B83	               ; Effect

Positioned text for Cmd.Set menu
C3/4FB3:	8F78 7B8D87B900                ; Arrange

Positioned text for Controller menu
C3/4FBA:	4D7B 72B886AEC5A6C59BB7A965A900; Controller
C3/4FC9:	217C 72B886AEC5A6C55400        ; Cntlr1
C3/4FD4:	337C 72B886AEC5A6C55500        ; Cntlr2
C3/4FDF:	A17C 72B886AEC5A6C55400        ; Cntlr1
C3/4FEA:	B37C 72B886AEC5A6C55500        ; Cntlr2
C3/4FF5:	217D 72B886AEC5A6C55400        ; Cntlr1
C3/5000:	337D 72B886AEC5A6C55500        ; Cntlr2
C3/500B:	A17D 72B886AEC5A6C55400        ; Cntlr1
C3/5016:	B37D 72B886AEC5A6C55500        ; Cntlr2

Text pointers for Button Settings menu
C3/5021:	9350                           ; Button Settings
C3/5023:	CB51                           ; A: button
C3/5025:	D151                           ; B: button
C3/5027:	D751                           ; X: button
C3/5029:	DD51                           ; Y: button
C3/502B:	E351                           ; L: button
C3/502D:	E951                           ; R: button
C3/502F:	EF51                           ; S: button
C3/5031:	F551                           ; A
C3/5033:	F951                           ; B
C3/5035:	FD51                           ; X
C3/5037:	0152                           ; Y
C3/5039:	0552                           ; L
C3/503B:	0952                           ; R
C3/503D:	0D52                           ; SEL
C3/503F:	9E50                           ; A: Decision
C3/5041:	A550                           ; A: Cancel
C3/5043:	AC50                           ; A: Menu
C3/5045:	B350                           ; A: Party
C3/5047:	BB50                           ; A: Change
C3/5049:	C250                           ; A: Defense
C3/504B:	C950                           ; B: Decision
C3/504D:	D050                           ; B: Cancel
C3/504F:	D750                           ; B: Menu
C3/5051:	DE50                           ; B: Party
C3/5053:	E650                           ; B: Change
C3/5055:	ED50                           ; B: Defense
C3/5057:	F450                           ; X: Decision
C3/5059:	FB50                           ; X: Cancel
C3/505B:	0251                           ; X: Menu
C3/505D:	0951                           ; X: Party
C3/505F:	1151                           ; X: Change
C3/5061:	1851                           ; X: Defense
C3/5063:	1F51                           ; Y: Decision
C3/5065:	2651                           ; Y: Cancel
C3/5067:	2D51                           ; Y: Menu
C3/5069:	3451                           ; Y: Party
C3/506B:	3C51                           ; Y: Change
C3/506D:	4351                           ; Y: Defense
C3/506F:	4A51                           ; L: Decision
C3/5071:	5151                           ; L: Cancel
C3/5073:	5851                           ; L: Menu
C3/5075:	5F51                           ; L: Party
C3/5077:	6751                           ; L: Change
C3/5079:	6E51                           ; L: Defense
C3/507B:	7551                           ; R: Decision
C3/507D:	7C51                           ; R: Cancel
C3/507F:	8351                           ; R: Menu
C3/5081:	8A51                           ; R: Party
C3/5083:	9251                           ; R: Change
C3/5085:	9951                           ; R: Defense
C3/5087:	A051                           ; S: Decision
C3/5089:	A751                           ; S: Cancel
C3/508B:	AE51                           ; S: Menu
C3/508D:	B551                           ; S: Party
C3/508F:	BD51                           ; S: Change
C3/5091:	C451                           ; S: Defense

Positioned text for Button Settings menu
C3/5093:	F578 287EB89B7BBD858D00        ; Button Settings
C3/509E:	CD79 71BD858D00                ; A: Decision
C3/50A5:	D779 81C1897700                ; A: Cancel
C3/50AC:	E179 A294C0C500                ; A: Menu
C3/50B3:	E979 49C584C6C500              ; A: Party
C3/50BB:	F379 80CAB83600                ; A: Change
C3/50C2:	FD79 29892DC300                ; A: Defense
C3/50C9:	CD7A 71BD858D00                ; B: Decision
C3/50D0:	D77A 81C1897700                ; B: Cancel
C3/50D7:	E17A A294C0C500                ; B: Menu
C3/50DE:	E97A 49C584C6C500              ; B: Party
C3/50E6:	F37A 80CAB83600                ; B: Change
C3/50ED:	FD7A 29892DC300                ; B: Defense
C3/50F4:	CD7B 71BD858D00                ; X: Decision
C3/50FB:	D77B 81C1897700                ; X: Cancel
C3/5102:	E17B A294C0C500                ; X: Menu
C3/5109:	E97B 49C584C6C500              ; X: Party
C3/5111:	F37B 80CAB83600                ; X: Change
C3/5118:	FD7B 29892DC300                ; X: Defense
C3/511F:	CD7C 71BD858D00                ; Y: Decision
C3/5126:	D77C 81C1897700                ; Y: Cancel
C3/512D:	E17C A294C0C500                ; Y: Menu
C3/5134:	E97C 49C584C6C500              ; Y: Party
C3/513C:	F37C 80CAB83600                ; Y: Change
C3/5143:	FD7C 29892DC300                ; Y: Defense
C3/514A:	CD7D 71BD858D00                ; L: Decision
C3/5151:	D77D 81C1897700                ; L: Cancel
C3/5158:	E17D A294C0C500                ; L: Menu
C3/515F:	E97D 49C584C6C500              ; L: Party
C3/5167:	F37D 80CAB83600                ; L: Change
C3/516E:	FD7D 29892DC300                ; L: Defense
C3/5175:	CD7E 71BD858D00                ; R: Decision
C3/517C:	D77E 81C1897700                ; R: Cancel
C3/5183:	E17E A294C0C500                ; R: Menu
C3/518A:	E97E 49C584C6C500              ; R: Party
C3/5192:	F37E 80CAB83600                ; R: Change
C3/5199:	FD7E 29892DC300                ; R: Defense
C3/51A0:	CD7F 71BD858D00                ; S: Decision
C3/51A7:	D77F 81C1897700                ; S: Cancel
C3/51AE:	E17F A294C0C500                ; S: Menu
C3/51B5:	E97F 49C584C6C500              ; S: Party
C3/51BD:	F37F 80CAB83600                ; S: Change
C3/51C4:	FD7F 29892DC300                ; S: Defense
C3/51CB:	5379 287EB800                  ; A: button
C3/51D1:	537A 287EB800                  ; B: button
C3/51D7:	537B 287EB800                  ; X: button
C3/51DD:	537C 287EB800                  ; Y: button
C3/51E3:	537D 287EB800                  ; L: button
C3/51E9:	537E 287EB800                  ; R: button
C3/51EF:	577F 287EB800                  ; S: button
C3/51F5:	9179 2000                      ; A
C3/51F9:	917A 2100                      ; B
C3/51FD:	917B 3700                      ; X
C3/5201:	917C 3800                      ; Y
C3/5205:	917D 2B00                      ; L
C3/5209:	917E 3100                      ; R
C3/520D:	917F 32242B00                  ; SEL

Load navigation data for Skills menu
C3/5213:	A03252  	LDY #$5232     ; C3/5232
C3/5216:	4C8106  	JMP $0681      ; Load navig data

Handle D-Pad and cursor memory for Skills menu
C3/5219:	20B007  	JSR $07B0      ; Handle D-Pad
C3/521C:	A03752  	LDY #$5237     ; C3/5237
C3/521F:	20C306  	JSR $06C3      ; Relocate cursor
C3/5222:	7B      	TDC            ; Clear A
C3/5223:	A528    	LDA $28        ; Member slot
C3/5225:	0A      	ASL A          ; Double it
C3/5226:	AA      	TAX            ; Index it
C3/5227:	A54D    	LDA $4D        ; Cursor column
C3/5229:	9D3602  	STA $0236,X    ; Remember it
C3/522C:	A54E    	LDA $4E        ; Cursor row
C3/522E:	9D3702  	STA $0237,X    ; Remember it
C3/5231:	60      	RTS

Navigation data for Skills menu
C3/5232:	80      	; Wraps vertically
C3/5233:	00      	; Initial column
C3/5234:	01      	; Initial row
C3/5235:	01      	; 1 column
C3/5236:	07      	; 7 rows

Cursor positions for Skills menu
C3/5237:	0014    	; Espers
C3/5239:	0024    	; Magic
C3/523B:	0044    	; SwdTech
C3/523D:	0054    	; Blitz
C3/523F:	0064    	; Lore
C3/5241:	0074    	; Rage
C3/5243:	0084    	; Dance

Load navigation data for Magic menu
C3/5245:	A06C52  	LDY #$526C     ; C3/526C
C3/5248:	4C8106  	JMP $0681      ; Load navig data

Handle D-Pad and cursor memory for Magic menu
C3/524B:	204889  	JSR $8948      ; Handle D-Pad
C3/524E:	A07152  	LDY #$5271     ; C3/5271
C3/5251:	20CB06  	JSR $06CB      ; Relocate cursor
C3/5254:	7B      	TDC            ; Clear A
C3/5255:	A528    	LDA $28        ; Member slot
C3/5257:	0A      	ASL A          ; Double it
C3/5258:	AA      	TAX            ; Index it
C3/5259:	A54F    	LDA $4F        ; List column
C3/525B:	9D3E02  	STA $023E,X    ; Remember it
C3/525E:	A550    	LDA $50        ; List row
C3/5260:	9D3F02  	STA $023F,X    ; Remember it
C3/5263:	A528    	LDA $28        ; Member slot
C3/5265:	AA      	TAX            ; Index it
C3/5266:	A54A    	LDA $4A        ; Scroll position
C3/5268:	9D4602  	STA $0246,X    ; Remember it
C3/526B:	60      	RTS

Navigation data for Magic menu
C3/526C:	01      	; Wraps horizontally
C3/526D:	00      	; Initial column
C3/526E:	00      	; Initial row
C3/526F:	03      	; 3 columns
C3/5270:	09      	; 9 rows

Cursor positions for Magic menu
C3/5271:	0868    	; Spell 1
C3/5273:	5068    	; Spell 2
C3/5275:	9868    	; Spell 3
C3/5277:	0874    	; Spell 4
C3/5279:	5074    	; Spell 5
C3/527B:	9874    	; Spell 6
C3/527D:	0880    	; Spell 7
C3/527F:	5080    	; Spell 8
C3/5281:	9880    	; Spell 9
C3/5283:	088C    	; Spell 10
C3/5285:	508C    	; Spell 11
C3/5287:	988C    	; Spell 12
C3/5289:	0898    	; Spell 13
C3/528B:	5098    	; Spell 14
C3/528D:	9898    	; Spell 15
C3/528F:	08A4    	; Spell 16
C3/5291:	50A4    	; Spell 17
C3/5293:	98A4    	; Spell 18
C3/5295:	08B0    	; Spell 19
C3/5297:	50B0    	; Spell 20
C3/5299:	98B0    	; Spell 21
C3/529B:	08BC    	; Spell 22
C3/529D:	50BC    	; Spell 23
C3/529F:	98BC    	; Spell 24
C3/52A1:	08C8    	; Spell 25
C3/52A3:	50C8    	; Spell 26
C3/52A5:	98C8    	; Spell 27

Load navigation data for SwdTech, Blitz, or Dance menu
C3/52A7:	A0B852  	LDY #$52B8     ; C3/52B8
C3/52AA:	4C8106  	JMP $0681      ; Load navig data

Handle D-Pad for SwdTech, Blitz, or Dance menu
C3/52AD:	20B007  	JSR $07B0      ; Handle D-Pad
C3/52B0:	A0BD52  	LDY #$52BD     ; C3/52BD
C3/52B3:	84E7    	STY $E7        ; ...
C3/52B5:	4CC306  	JMP $06C3      ; Relocate cursor

Navigation data for SwdTech, Blitz, and Dance menus
C3/52B8:	00      	; Wraps on all sides
C3/52B9:	00      	; Initial column
C3/52BA:	00      	; Initial row
C3/52BB:	02      	; 2 columns
C3/52BC:	04      	; 4 rows

Cursor positions for SwdTech, Blitz, and Dance menus
C3/52BD:	1874    	; Skill 1
C3/52BF:	8874    	; Skill 2
C3/52C1:	188C    	; Skill 3
C3/52C3:	888C    	; Skill 4
C3/52C5:	18A4    	; Skill 5
C3/52C7:	88A4    	; Skill 6
C3/52C9:	18BC    	; Skill 7
C3/52CB:	88BC    	; Skill 8

Load navigation data for Lore or Espers menu
C3/52CD:	A0DC52  	LDY #$52DC     ; C3/52DC
C3/52D0:	4C8106  	JMP $0681      ; Load navig data

Handle D-Pad for Lore or Espers menu
C3/52D3:	204889  	JSR $8948      ; Handle D-Pad
C3/52D6:	A0E152  	LDY #$52E1     ; C3/52E1
C3/52D9:	4CCB06  	JMP $06CB      ; Relocate cursor

Navigation data for Lore and Espers menus
C3/52DC:	01      	; Wraps horizontally
C3/52DD:	00      	; Initial column
C3/52DE:	00      	; Initial row
C3/52DF:	02      	; 2 columns
C3/52E0:	09      	; 9 rows

Cursor positions for Lore and Espers menus
C3/52E1:	0868    	; Skill 1
C3/52E3:	7868    	; Skill 2
C3/52E5:	0874    	; Skill 3
C3/52E7:	7874    	; Skill 4
C3/52E9:	0880    	; Skill 5
C3/52EB:	7880    	; Skill 6
C3/52ED:	088C    	; Skill 7
C3/52EF:	788C    	; Skill 8
C3/52F1:	0898    	; Skill 9
C3/52F3:	7898    	; Skill 10
C3/52F5:	08A4    	; Skill 11
C3/52F7:	78A4    	; Skill 12
C3/52F9:	08B0    	; Skill 13
C3/52FB:	78B0    	; Skill 14
C3/52FD:	08BC    	; Skill 15
C3/52FF:	78BC    	; Skill 16
C3/5301:	08C8    	; Skill 17
C3/5303:	78C8    	; Skill 18

Load navigation data for Rage menu
C3/5305:	A01453  	LDY #$5314     ; C3/5314
C3/5308:	4C8106  	JMP $0681      ; Load navig data

Handle D-Pad for Rage menu
C3/530B:	204889  	JSR $8948      ; Handle D-Pad
C3/530E:	A01953  	LDY #$5319     ; C3/5319
C3/5311:	4CCB06  	JMP $06CB      ; Relocate cursor

Navigation data for Rage menu
C3/5314:	01      	; Wraps horizontally
C3/5315:	00      	; Initial column
C3/5316:	00      	; Initial row
C3/5317:	02      	; 2 columns
C3/5318:	09      	; 9 rows

Cursor positions for Rage menu
C3/5319:	1868    	; Rage 1
C3/531B:	8868    	; Rage 2
C3/531D:	1874    	; Rage 3
C3/531F:	8874    	; Rage 4
C3/5321:	1880    	; Rage 5
C3/5323:	8880    	; Rage 6
C3/5325:	188C    	; Rage 7
C3/5327:	888C    	; Rage 8
C3/5329:	1898    	; Rage 9
C3/532B:	8898    	; Rage 10
C3/532D:	18A4    	; Rage 11
C3/532F:	88A4    	; Rage 12
C3/5331:	18B0    	; Rage 13
C3/5333:	88B0    	; Rage 14
C3/5335:	18BC    	; Rage 15
C3/5337:	88BC    	; Rage 16
C3/5339:	18C8    	; Rage 17
C3/533B:	88C8    	; Rage 18

Draw Skills menu, disable individual MP costs in Magic menu
C3/533D:	649E    	STZ $9E        ; No MP by Magic
C3/533F:	20F40F  	JSR $0FF4      ; Stop VRAM DMA B
C3/5342:	A901    	LDA #$01       ; 64x32 at $0000
C3/5344:	8D0721  	STA $2107      ; Set BG1 map loc
C3/5347:	20BC71  	JSR $71BC      ; Clear BG2 map A
C3/534A:	20C171  	JSR $71C1      ; Clear BG2 map B
C3/534D:	A06A54  	LDY #$546A     ; C3/546A
C3/5350:	20C403  	JSR $03C4      ; Draw lower box A
C3/5353:	A06654  	LDY #$5466     ; C3/5466
C3/5356:	20C403  	JSR $03C4      ; Draw stats box A
C3/5359:	A06E54  	LDY #$546E     ; C3/546E
C3/535C:	20C403  	JSR $03C4      ; Draw top box A
C3/535F:	A06254  	LDY #$5462     ; C3/5462
C3/5362:	20C403  	JSR $03C4      ; Draw option box B
C3/5365:	A05E54  	LDY #$545E     ; C3/545E
C3/5368:	20C403  	JSR $03C4      ; Draw option box A
C3/536B:	A07654  	LDY #$5476     ; C3/5476
C3/536E:	20C403  	JSR $03C4      ; Draw lower box B
C3/5371:	A07254  	LDY #$5472     ; C3/5472
C3/5374:	20C403  	JSR $03C4      ; Draw stats box B
C3/5377:	A07E54  	LDY #$547E     ; C3/547E
C3/537A:	20C403  	JSR $03C4      ; Draw top box B
C3/537D:	A07A54  	LDY #$547A     ; C3/547A
C3/5380:	20C403  	JSR $03C4      ; Draw title box
C3/5383:	20BD0E  	JSR $0EBD      ; Upload windows
C3/5386:	20E753  	JSR $53E7      ; Draw actor info
C3/5389:	20930E  	JSR $0E93      ; Upload BG1 A+B
C3/538C:	20D071  	JSR $71D0      ; Clear BG3 map A
C3/538F:	20D571  	JSR $71D5      ; Clear BG3 map B
C3/5392:	20DA71  	JSR $71DA      ; Clear BG3 map C
C3/5395:	20C5AF  	JSR $AFC5      ; Build desc map
C3/5398:	209AAE  	JSR $AE9A      ; Upload tech names
C3/539B:	20FD53  	JSR $53FD      ; Set skill colors
C3/539E:	A579    	LDA $79        ; Espers palette
C3/53A0:	8529    	STA $29        ; Set attributes
C3/53A2:	A0A062  	LDY #$62A0     ; Text pointer
C3/53A5:	202603  	JSR $0326      ; Draw "Espers"
C3/53A8:	A57A    	LDA $7A        ; Magic palette
C3/53AA:	8529    	STA $29        ; Set attributes
C3/53AC:	A0A862  	LDY #$62A8     ; Text pointer
C3/53AF:	202603  	JSR $0326      ; Draw "Magic"
C3/53B2:	A57B    	LDA $7B        ; SwdTech palette
C3/53B4:	8529    	STA $29        ; Set attributes
C3/53B6:	A0AE62  	LDY #$62AE     ; Text pointer
C3/53B9:	202603  	JSR $0326      ; Draw "SwdTech"
C3/53BC:	A57C    	LDA $7C        ; Blitz palette
C3/53BE:	8529    	STA $29        ; Set attributes
C3/53C0:	A0B762  	LDY #$62B7     ; Text pointer
C3/53C3:	202603  	JSR $0326      ; Draw "Blitz"
C3/53C6:	A57D    	LDA $7D        ; Lore palette
C3/53C8:	8529    	STA $29        ; Set attributes
C3/53CA:	A0C062  	LDY #$62C0     ; Text pointer
C3/53CD:	202603  	JSR $0326      ; Draw "Lore"
C3/53D0:	A57E    	LDA $7E        ; Rage palette
C3/53D2:	8529    	STA $29        ; Set attributes
C3/53D4:	A0C962  	LDY #$62C9     ; Text pointer
C3/53D7:	202603  	JSR $0326      ; Draw "Rage"
C3/53DA:	A57F    	LDA $7F        ; Dance palette
C3/53DC:	8529    	STA $29        ; Set attributes
C3/53DE:	A0D062  	LDY #$62D0     ; Text pointer
C3/53E1:	202603  	JSR $0326      ; Draw "Dance"
C3/53E4:	4CD90E  	JMP $0ED9      ; Upload BG3 A+B

Draw actor info in Skills menu, including blue text
C3/53E7:	20A971  	JSR $71A9      ; Clear BG1 map A
C3/53EA:	20AD71  	JSR $71AD      ; Clear BG1 map B
C3/53ED:	A924    	LDA #$24       ; Palette 1
C3/53EF:	8529    	STA $29        ; Color: Blue
C3/53F1:	A2D662  	LDX #$62D6     ; Text ptrs loc
C3/53F4:	A00600  	LDY #$0006     ; Strings: 3
C3/53F7:	202C71  	JSR $712C      ; Draw "LV/HP/MP"
C3/53FA:	4CB455  	JMP $55B4      ; Draw actor info

Assign a palette to each submenu in Skills menu
C3/53FD:	A924    	LDA #$24       ; Gray palette
C3/53FF:	A600    	LDX $00        ; 1st: Espers
C3/5401:	9579    	STA $79,X      ; Disable menu
C3/5403:	E8      	INX            ; Menu slot +1
C3/5404:	E00700  	CPX #$0007     ; Done Dance?
C3/5407:	D0F8    	BNE $5401      ; Loop if not
C3/5409:	20AC55  	JSR $55AC      ; Actor's address
C3/540C:	5A      	PHY            ; Memorize it
C3/540D:	A20400  	LDX #$0004     ; Commands: 4
C3/5410:	DA      	PHX            ; Save counter
C3/5411:	A600    	LDX $00        ; 1st: Espers
C3/5413:	B91600  	LDA $0016,Y    ; Actor's command
C3/5416:	DF3854C3	CMP $C35438,X  ; Unlocks submenu?
C3/541A:	D004    	BNE $5420      ; Skip menu if not
C3/541C:	A920    	LDA #$20       ; Color: User's
C3/541E:	9579    	STA $79,X      ; Enable menu
C3/5420:	E8      	INX            ; Menu slot +1
C3/5421:	E00700  	CPX #$0007     ; Done Dance?
C3/5424:	D0ED    	BNE $5413      ; Loop if not
C3/5426:	C8      	INY            ; Cmd slot +1
C3/5427:	FA      	PLX            ; Loop counter
C3/5428:	CA      	DEX            ; One less cmd
C3/5429:	D0E5    	BNE $5410      ; Loop till last
C3/542B:	7A      	PLY            ; Actor's address
C3/542C:	B90000  	LDA $0000,Y    ; Actor
C3/542F:	C90C    	CMP #$0C       ; Gogo?
C3/5431:	D004    	BNE $5437      ; Exit if not
C3/5433:	A924    	LDA #$24       ; Gray palette
C3/5435:	8579    	STA $79        ; Disable Espers
C3/5437:	60      	RTS

Battle commands that unlock a skill menu
C3/5438:	02      	; Magic (unlocks Espers)
C3/5439:	02      	; Magic (unlocks Magic)
C3/543A:	07      	; SwdTech
C3/543B:	0A      	; Blitz
C3/543C:	0C      	; Lore
C3/543D:	10      	; Rage
C3/543E:	13      	; Dance

Draw Magic list and blue "MP" and create portrait
C3/543F:	20A971  	JSR $71A9      ; Clear BG1 map A
C3/5442:	20EB55  	JSR $55EB      ; Build spell list
C3/5445:	205956  	JSR $5659      ; Draw spell list
C3/5448:	A92C    	LDA #$2C       ; Palette 3
C3/544A:	8529    	STA $29        ; Color: Blue
C3/544C:	A0DC62  	LDY #$62DC     ; Text pointer
C3/544F:	20F902  	JSR $02F9      ; Erase title diac.
C3/5452:	A0E562  	LDY #$62E5     ; Text pointer
C3/5455:	20F902  	JSR $02F9      ; Draw "MP"
C3/5458:	200268  	JSR $6802      ; Create portrait
C3/545B:	4CB80F  	JMP $0FB8      ; Queue BG3 upload

Window layout for main Skills menu
C3/545E:	8B580604	; 08x06 at $588B (Upper submenus)
C3/5462:	0B5A060A	; 08x12 at $5A0B (Lower submenus)
C3/5466:	8B591C05	; 30x07 at $598B (Stats)
C3/546A:	4B5B1C0D	; 30x15 at $5B4B (Bottom)
C3/546E:	9B581402	; 22x04 at $589B (Top)

Window layout for Skills submenus
C3/5472:	8B611C05	; 30x07 at $618B (Stats)
C3/5476:	4B631C0D	; 30x15 at $634B (List)
C3/547A:	8B600602	; 08x04 at $608B (Title)
C3/547E:	9B601402	; 22x04 at $609B (Description)

Set to condense text in Skills menu or submenu
C3/5482:	A902    	LDA #$02       ; 1Rx2B to PPU
C3/5484:	8D5043  	STA $4350      ; Set CH5 mode
C3/5487:	A912    	LDA #$12       ; $2112
C3/5489:	8D5143  	STA $4351      ; To BG3 V-Scroll
C3/548C:	A0EC54  	LDY #$54EC     ; C3/54EC
C3/548F:	8C5243  	STY $4352      ; Set CH5 src LBs
C3/5492:	A9C3    	LDA #$C3       ; Bank: C3
C3/5494:	8D5443  	STA $4354      ; Set CH5 src HB
C3/5497:	A9C3    	LDA #$C3       ; ...
C3/5499:	8D5743  	STA $4357      ; Set indir HB
C3/549C:	A920    	LDA #$20       ; Channel: 5
C3/549E:	0443    	TSB $43        ; Queue HDMA-5
C3/54A0:	20F354  	JSR $54F3      ; Load BG1 V-Data
C3/54A3:	A600    	LDX $00        ; Index: 0
C3/54A5:	BF3855C3	LDA $C35538,X  ; BG1 H-Pan data
C3/54A9:	9F099A7E	STA $7E9A09,X  ; Save in RAM
C3/54AD:	E8      	INX            ; Index +1
C3/54AE:	E00D00  	CPX #$000D     ; End of table?
C3/54B1:	D0F2    	BNE $54A5      ; Loop if not
C3/54B3:	A902    	LDA #$02       ; 1Rx2B to PPU
C3/54B5:	8D6043  	STA $4360      ; Set CH6 mode
C3/54B8:	A90D    	LDA #$0D       ; $210D
C3/54BA:	8D6143  	STA $4361      ; To BG1 H-Scroll
C3/54BD:	A0099A  	LDY #$9A09     ; 7E/9A09
C3/54C0:	8C6243  	STY $4362      ; Set CH6 src LBs
C3/54C3:	A97E    	LDA #$7E       ; Bank: 7E
C3/54C5:	8D6443  	STA $4364      ; Set CH6 src HB
C3/54C8:	A97E    	LDA #$7E       ; ...
C3/54CA:	8D6743  	STA $4367      ; Set indir HB
C3/54CD:	A902    	LDA #$02       ; 1Rx2B to PPU
C3/54CF:	8D7043  	STA $4370      ; Set CH7 mode
C3/54D2:	A90E    	LDA #$0E       ; $210E
C3/54D4:	8D7143  	STA $4371      ; To BG1 V-Scroll
C3/54D7:	A04998  	LDY #$9849     ; 7E/9849
C3/54DA:	8C7243  	STY $4372      ; Set CH7 src LBs
C3/54DD:	A97E    	LDA #$7E       ; Bank: 7E
C3/54DF:	8D7443  	STA $4374      ; Set CH7 src HB
C3/54E2:	A97E    	LDA #$7E       ; ...
C3/54E4:	8D7743  	STA $4377      ; Set indir HB
C3/54E7:	A9C0    	LDA #$C0       ; Channels: 6, 7
C3/54E9:	0443    	TSB $43        ; Queue HDMA 6+7
C3/54EB:	60      	RTS

BG3 vertical shift table for skill menus
C3/54EC:	4F 0200 	; SwdTech and above
C3/54EF:	40 0200 	; Blitz and below
C3/54F2:	00      	; End

Load vertical shift values for BG1 text in skill menus
C3/54F3:	A600    	LDX $00        ; Index: 0
C3/54F5:	BF4555C3	LDA $C35545,X  ; Stats V-Data
C3/54F9:	9F49987E	STA $7E9849,X  ; Save in RAM
C3/54FD:	E8      	INX            ; Index +1
C3/54FE:	E01200  	CPX #$0012     ; At skills?
C3/5501:	D0F2    	BNE $54F5      ; Loop if not
C3/5503:	BF4555C3	LDA $C35545,X  ; Skill V-Data
C3/5507:	9F49987E	STA $7E9849,X  ; Save in RAM
C3/550B:	E8      	INX            ; Index +1
C3/550C:	7B      	TDC            ; Clear A
C3/550D:	A549    	LDA $49        ; Top BG1 row
C3/550F:	0A      	ASL A          ; x2
C3/5510:	0A      	ASL A          ; x4
C3/5511:	0A      	ASL A          ; x8
C3/5512:	0A      	ASL A          ; x16
C3/5513:	29FF    	AND #$FF       ; ...
C3/5515:	C220    	REP #$20       ; 16-bit A
C3/5517:	18      	CLC            ; Prepare ADC
C3/5518:	7F4555C3	ADC $C35545,X  ; Add V-Data
C3/551C:	9F49987E	STA $7E9849,X  ; Save in RAM
C3/5520:	E220    	SEP #$20       ; 8-bit A
C3/5522:	E8      	INX            ; Index +1
C3/5523:	E8      	INX            ; Index +1
C3/5524:	E06300  	CPX #$0063     ; Past list?
C3/5527:	D0DA    	BNE $5503      ; Loop if not
C3/5529:	BF4555C3	LDA $C35545,X  ; Bottom V-Data
C3/552D:	9F49987E	STA $7E9849,X  ; Save in RAM
C3/5531:	E8      	INX            ; Index +1
C3/5532:	E06700  	CPX #$0067     ; End of table?
C3/5535:	D0F2    	BNE $5529      ; Loop if not
C3/5537:	60      	RTS

BG1 H-Shift table for skill menus (merges tilemaps)
C3/5538:	27 0001 	; Nothing
C3/553B:	3C 0001 	; Member stats
C3/553E:	6C 0000 	; Spells, etc.
C3/5541:	1E 0001 	; Nothing
C3/5544:	00      	; End

BG1 V-Shift table for skill menus (condenses text)
C3/5545:	3F 0000 	; LV
C3/5548:	0C 0400 	; HP
C3/554B:	0C 0800 	; MP
C3/554E:	0A 0C00 	; Nothing
C3/5551:	01 0C00 	; Nothing
C3/5554:	01 0C00 	; Nothing
C3/5557:	04 A0FF 	; Ability row A
C3/555A:	04 A0FF 	; Ability row B
C3/555D:	04 A0FF 	; Ability row C
C3/5560:	04 A4FF 	; Ability row D
C3/5563:	04 A4FF 	; Ability row E
C3/5566:	04 A4FF 	; Ability row F
C3/5569:	04 A8FF 	; Ability row G
C3/556C:	04 A8FF 	; Ability row H
C3/556F:	04 A8FF 	; Ability row I
C3/5572:	04 ACFF 	; Ability row J
C3/5575:	04 ACFF 	; Ability row K
C3/5578:	04 ACFF 	; Ability row L
C3/557B:	04 B0FF 	; Ability row M
C3/557E:	04 B0FF 	; Ability row N
C3/5581:	04 B0FF 	; Ability row O
C3/5584:	04 B4FF 	; Ability row P
C3/5587:	04 B4FF 	; Ability row Q
C3/558A:	04 B4FF 	; Ability row R
C3/558D:	04 B8FF 	; Ability row S
C3/5590:	04 B8FF 	; Ability row T
C3/5593:	04 B8FF 	; Ability row U
C3/5596:	04 BCFF 	; Ability row V
C3/5599:	04 BCFF 	; Ability row W
C3/559C:	04 BCFF 	; Ability row X
C3/559F:	04 C0FF 	; Ability row Y
C3/55A2:	04 C0FF 	; Ability row Z
C3/55A5:	04 C0FF 	; Ability row 
C3/55A8:	1E 20FF 	; Nothing?
C3/55AB:	00      	; End

Load member's SRAM block address for Skills menu
C3/55AC:	7B      	TDC            ; Clear A
C3/55AD:	A528    	LDA $28        ; Member slot
C3/55AF:	0A      	ASL A          ; Double it
C3/55B0:	AA      	TAX            ; Index it
C3/55B1:	B46D    	LDY $6D,X      ; SRAM address
C3/55B3:	60      	RTS

Draw actor info in Skills menu
C3/55B4:	20AC55  	JSR $55AC      ; Actor's address
C3/55B7:	8467    	STY $67        ; Memorize it
C3/55B9:	4CBC55  	JMP $55BC      ; ...
C3/55BC:	A0DB42  	LDY #$42DB     ; Class/KO pos
C3/55BF:	A24847  	LDX #$4748     ; Icon position
C3/55C2:	20C234  	JSR $34C2      ; Do class/status
C3/55C5:	A03363  	LDY #$6333     ; Text pointer
C3/55C8:	20F902  	JSR $02F9      ; Draw HP's "/"
C3/55CB:	A03763  	LDY #$6337     ; Text pointer
C3/55CE:	20F902  	JSR $02F9      ; Draw MP's "/"
C3/55D1:	A2E155  	LDX #$55E1     ; Coords tbl ptr
C3/55D4:	20D70C  	JSR $0CD7      ; Draw LV, HP, MP
C3/55D7:	A920    	LDA #$20       ; Palette 0
C3/55D9:	8529    	STA $29        ; Color: User's
C3/55DB:	A0DB41  	LDY #$41DB     ; Text position
C3/55DE:	4CAE35  	JMP $35AE      ; Draw held esper

Tilemap pointers for stats in Skills menu
C3/55E1:	3742    	; Level
C3/55E3:	B342    	; HP
C3/55E5:	BD42    	; Max HP
C3/55E7:	3343    	; MP
C3/55E9:	3D43    	; Max MP

Build Magic list based on Mag.Order
C3/55EB:	A2899D  	LDX #$9D89     ; 7E/9D89
C3/55EE:	8E8121  	STX $2181      ; Set WRAM LBs
C3/55F1:	A23C00  	LDX #$003C     ; Slots: 60
C3/55F4:	A9FF    	LDA #$FF       ; Spell: None
C3/55F6:	8D8021  	STA $2180      ; Add to list
C3/55F9:	CA      	DEX            ; One less spell
C3/55FA:	D0FA    	BNE $55F6      ; Loop till last
C3/55FC:	7B      	TDC            ; Clear A
C3/55FD:	A8      	TAY            ; List slot: 1
C3/55FE:	AD541D  	LDA $1D54      ; Game options
C3/5601:	2907    	AND #$07       ; Get Mag.Order
C3/5603:	0A      	ASL A          ; x2
C3/5604:	0A      	ASL A          ; x4
C3/5605:	AA      	TAX            ; Index it
C3/5606:	DA      	PHX            ; Save index
C3/5607:	BF1856C3	LDA $C35618,X  ; Starting spell
C3/560B:	C9FF    	CMP #$FF       ; At terminator?
C3/560D:	F007    	BEQ $5616      ; Exit if so
C3/560F:	203056  	JSR $5630      ; Populate list
C3/5612:	FA      	PLX            ; Type index
C3/5613:	E8      	INX            ; Index +1
C3/5614:	80F0    	BRA $5606      ; Do next type
C3/5616:	FA      	PLX            ; Unstack index
C3/5617:	60      	RTS

Starting spell for each Magic type, sorted based on Mag.Order
C3/5618:	2D 00 18 FF	; 1: Cure, Fire, Scan
C3/561C:	2D 18 00 FF	; 2: Cure, Scan, Fire
C3/5620:	00 18 2D FF	; 3: Fire, Scan, Cure
C3/5624:	00 2D 18 FF	; 4: Fire, Cure, Scan
C3/5628:	18 2D 00 FF	; 5: Scan, Cure, Fire
C3/562C:	18 00 2D FF	; 6: Scan, Fire, Cure

Add spells of given type to Magic list based on starting spell
C3/5630:	C900    	CMP #$00       ; Fire?
C3/5632:	F009    	BEQ $563D      ; Branch if so
C3/5634:	C92D    	CMP #$2D       ; Cure?
C3/5636:	F00A    	BEQ $5642      ; Branch if so
C3/5638:	A21500  	LDX #$0015     ; Spells: 21
C3/563B:	800A    	BRA $5647      ; Build list

Fork: Black magic
C3/563D:	A21800  	LDX #$0018     ; Spells: 24
C3/5640:	8005    	BRA $5647      ; Build list

Fork: White magic
C3/5642:	A20900  	LDX #$0009     ; Spells: 9
C3/5645:	8000    	BRA $5647      ; ...

Fork: Populate list
C3/5647:	86E0    	STX $E0        ; Set spells left
C3/5649:	AA      	TAX            ; ...
C3/564A:	BB      	TYX            ; List slot
C3/564B:	9F899D7E	STA $7E9D89,X  ; Add spell there
C3/564F:	1A      	INC A          ; Spell number +1
C3/5650:	C8      	INY            ; List slot +1
C3/5651:	C6E0    	DEC $E0        ; One less spell
C3/5653:	D0F5    	BNE $564A      ; Loop till last

Fork: Skip a row to add a separator
C3/5655:	C8      	INY            ; List slot +1
C3/5656:	C8      	INY            ; List slot +1
C3/5657:	C8      	INY            ; List slot +1
C3/5658:	60      	RTS

Draw Magic list
C3/5659:	20788B  	JSR $8B78      ; Define $E5, $E6
C3/565C:	A00900  	LDY #$0009     ; Rows left: 9
C3/565F:	5A      	PHY            ; Save counter
C3/5660:	207056  	JSR $5670      ; Draw 3 spells
C3/5663:	A5E6    	LDA $E6        ; BG1 write row
C3/5665:	1A      	INC A          ; Go 1 row down
C3/5666:	1A      	INC A          ; Go 1 row down
C3/5667:	291F    	AND #$1F       ; Stay in limits
C3/5669:	85E6    	STA $E6        ; Save changes
C3/566B:	7A      	PLY            ; Rows left
C3/566C:	88      	DEY            ; One less left
C3/566D:	D0F0    	BNE $565F      ; Loop till last
C3/566F:	60      	RTS

Draw a row of three spells in Magic menu
C3/5670:	209256  	JSR $5692      ; Define source
C3/5673:	A20300  	LDX #$0003     ; X: 3
C3/5676:	20A156  	JSR $56A1      ; Draw spell A
C3/5679:	E6E5    	INC $E5        ; Menu slot +1
C3/567B:	209256  	JSR $5692      ; Define source
C3/567E:	A20C00  	LDX #$000C     ; X: 12
C3/5681:	20A156  	JSR $56A1      ; Draw spell B
C3/5684:	E6E5    	INC $E5        ; Menu slot +1
C3/5686:	209256  	JSR $5692      ; Define source
C3/5689:	A21500  	LDX #$0015     ; X: 21
C3/568C:	20A156  	JSR $56A1      ; Draw spell C
C3/568F:	E6E5    	INC $E5        ; Menu slot +1
C3/5691:	60      	RTS

Set source for loading Magic name
C3/5692:	A00500  	LDY #$0005     ; Letters: 5
C3/5695:	84EB    	STY $EB        ; Set src size
C3/5697:	A00074  	LDY #$7400     ; ED/7400
C3/569A:	84EF    	STY $EF        ; Set src LBs
C3/569C:	A9ED    	LDA #$ED       ; Bank: ED
C3/569E:	85F1    	STA $F1        ; Set src HB
C3/56A0:	60      	RTS

Draw text in spell slot of Magic menu
C3/56A1:	A5E6    	LDA $E6        ; BG1 write row
C3/56A3:	202088  	JSR $8820      ; Compute map ptr
C3/56A6:	C220    	REP #$20       ; 16-bit A
C3/56A8:	8A      	TXA            ; ...
C3/56A9:	8F899E7E	STA $7E9E89    ; Set position
C3/56AD:	E220    	SEP #$20       ; 8-bit A
C3/56AF:	A59E    	LDA $9E        ; Show MP in list?
C3/56B1:	F062    	BEQ $5715      ; Branch if not
C3/56B3:	20BB57  	JSR $57BB      ; Spell
C3/56B6:	201C58  	JSR $581C      ; Handle graying
C3/56B9:	20BB57  	JSR $57BB      ; Spell
C3/56BC:	C9FF    	CMP #$FF       ; None?
C3/56BE:	F031    	BEQ $56F1      ; Blank if so
C3/56C0:	207157  	JSR $5771      ; Spell mastery
C3/56C3:	C9FF    	CMP #$FF       ; Fully learned?
C3/56C5:	D02A    	BNE $56F1      ; Blank if not

Fork: Draw spell plus MP cost
C3/56C7:	20BB57  	JSR $57BB      ; Spell
C3/56CA:	20F28B  	JSR $8BF2      ; Load name
C3/56CD:	A2909E  	LDX #$9E90     ; 7E/9E90
C3/56D0:	8E8121  	STX $2181      ; Set WRAM LBs
C3/56D3:	A9FF    	LDA #$FF       ; Space char
C3/56D5:	8D8021  	STA $2180      ; Add to string
C3/56D8:	20BB57  	JSR $57BB      ; Spell
C3/56DB:	20DC57  	JSR $57DC      ; Define MP cost
C3/56DE:	206305  	JSR $0563      ; Turn into text
C3/56E1:	A5F8    	LDA $F8        ; Tens digit
C3/56E3:	8D8021  	STA $2180      ; Add to string
C3/56E6:	A5F9    	LDA $F9        ; Ones digit
C3/56E8:	8D8021  	STA $2180      ; Add to string
C3/56EB:	9C8021  	STZ $2180      ; End string
C3/56EE:	4CB987  	JMP $87B9      ; Draw string

Fork: Blank spell slot
C3/56F1:	7B      	TDC            ; Clear A
C3/56F2:	A5E5    	LDA $E5        ; Spell slot
C3/56F4:	AA      	TAX            ; Index it
C3/56F5:	A9FF    	LDA #$FF       ; Spell: None
C3/56F7:	9F899D7E	STA $7E9D89,X  ; Assign to slot
C3/56FB:	208858  	JSR $5888      ; Disable spell
C3/56FE:	A00800  	LDY #$0008     ; Letters: 8
C3/5701:	A28B9E  	LDX #$9E8B     ; 7E/9E8B
C3/5704:	8E8121  	STX $2181      ; Set WRAM LBs
C3/5707:	A9FF    	LDA #$FF       ; Space char
C3/5709:	8D8021  	STA $2180      ; Add to string
C3/570C:	88      	DEY            ; One less left
C3/570D:	D0FA    	BNE $5709      ; Loop till last
C3/570F:	9C8021  	STZ $2180      ; End string
C3/5712:	4CB987  	JMP $87B9      ; Draw 8 spaces

Fork: Draw spell plus percentage
C3/5715:	20BB57  	JSR $57BB      ; Spell
C3/5718:	C9FF    	CMP #$FF       ; None?
C3/571A:	F0D5    	BEQ $56F1      ; Blank if so
C3/571C:	207157  	JSR $5771      ; Spell mastery
C3/571F:	C900    	CMP #$00       ; Zero?
C3/5721:	F0CE    	BEQ $56F1      ; Blank if so
C3/5723:	20BB57  	JSR $57BB      ; Spell
C3/5726:	20F28B  	JSR $8BF2      ; Load name
C3/5729:	A2909E  	LDX #$9E90     ; 7E/9E90
C3/572C:	8E8121  	STX $2181      ; Set WRAM LBs
C3/572F:	20BB57  	JSR $57BB      ; Spell
C3/5732:	207157  	JSR $5771      ; Spell mastery
C3/5735:	C9FF    	CMP #$FF       ; Fully learned?
C3/5737:	F021    	BEQ $575A      ; Branch if so
C3/5739:	48      	PHA            ; Save mastery
C3/573A:	208858  	JSR $5888      ; Disable spell
C3/573D:	A92C    	LDA #$2C       ; Palette 3
C3/573F:	8529    	STA $29        ; Color: Bluish
C3/5741:	68      	PLA            ; Spell mastery
C3/5742:	206305  	JSR $0563      ; Turn into text
C3/5745:	A5F8    	LDA $F8        ; Tens digit
C3/5747:	8D8021  	STA $2180      ; Add to string
C3/574A:	A5F9    	LDA $F9        ; Ones digit
C3/574C:	8D8021  	STA $2180      ; Add to string
C3/574F:	A9CD    	LDA #$CD       ; Char: "%"
C3/5751:	8D8021  	STA $2180      ; Add to string
C3/5754:	9C8021  	STZ $2180      ; End string
C3/5757:	4CB987  	JMP $87B9      ; Draw string

Fork: Draw spell name only
C3/575A:	A924    	LDA #$24       ; Palette 1
C3/575C:	8529    	STA $29        ; Color: Blue...
C3/575E:	20BB57  	JSR $57BB      ; Spell
C3/5761:	201C58  	JSR $581C      ; Handle graying
C3/5764:	A9FF    	LDA #$FF       ; Space char
C3/5766:	8D8021  	STA $2180      ; Add to string
C3/5769:	8D8021  	STA $2180      ; Add to string
C3/576C:	8D8021  	STA $2180      ; Add to string
C3/576F:	80E3    	BRA $5754      ; Draw string

Get spell's mastery percentage
C3/5771:	85E0    	STA $E0        ; Save spell
C3/5773:	20AC55  	JSR $55AC      ; Define Y
C3/5776:	B90000  	LDA $0000,Y    ; Actor
C3/5779:	C90C    	CMP #$0C       ; Gogo?
C3/577B:	F017    	BEQ $5794      ; Branch if so
C3/577D:	8D0242  	STA $4202      ; Set multiplicand
C3/5780:	A936    	LDA #$36       ; Spell list size
C3/5782:	8D0342  	STA $4203      ; Set multiplier
C3/5785:	7B      	TDC            ; Clear A
C3/5786:	A5E0    	LDA $E0        ; Spell
C3/5788:	C220    	REP #$20       ; 16-bit A
C3/578A:	6D1642  	ADC $4216      ; Add product
C3/578D:	AA      	TAX            ; Index sum
C3/578E:	E220    	SEP #$20       ; 8-bit A
C3/5790:	BD6E1A  	LDA $1A6E,X    ; Spell mastery
C3/5793:	60      	RTS

Fork: Test all members for Gogo
C3/5794:	64E1    	STZ $E1        ; Member slot: 1
C3/5796:	7B      	TDC            ; ...
C3/5797:	A5E1    	LDA $E1        ; Tested member
C3/5799:	C528    	CMP $28        ; Gogo?
C3/579B:	F014    	BEQ $57B1      ; Skip if so
C3/579D:	0A      	ASL A          ; Double it
C3/579E:	AA      	TAX            ; Index it
C3/579F:	B46D    	LDY $6D,X      ; Actor's address
C3/57A1:	F00E    	BEQ $57B1      ; Skip if nobody
C3/57A3:	B90000  	LDA $0000,Y    ; Actor in slot
C3/57A6:	C90C    	CMP #$0C       ; Gogo or higher?
C3/57A8:	B007    	BCS $57B1      ; Skip if so
C3/57AA:	207D57  	JSR $577D      ; Actor's mastery
C3/57AD:	C9FF    	CMP #$FF       ; Fully learned?
C3/57AF:	F009    	BEQ $57BA      ; Exit if so
C3/57B1:	E6E1    	INC $E1        ; Member slot +1
C3/57B3:	A5E1    	LDA $E1        ; Members done
C3/57B5:	C904    	CMP #$04       ; Done all 4?
C3/57B7:	D0DD    	BNE $5796      ; Loop if not
C3/57B9:	7B      	TDC            ; Mastery: 0
C3/57BA:	60      	RTS

Get processed spell
C3/57BB:	7B      	TDC            ; Clear A
C3/57BC:	A5E5    	LDA $E5        ; Spell slot
C3/57BE:	AA      	TAX            ; Index it
C3/57BF:	BF899D7E	LDA $7E9D89,X  ; Spell in slot
C3/57C3:	60      	RTS

Compute spell data index
C3/57C4:	48      	PHA            ; Save spell
C3/57C5:	AD1242  	LDA $4212      ; PPU status
C3/57C8:	2940    	AND #$40       ; H-Blank?
C3/57CA:	F0F9    	BEQ $57C5      ; Loop if not
C3/57CC:	68      	PLA            ; Spell
C3/57CD:	8D1B21  	STA $211B      ; Set matrix A LB
C3/57D0:	9C1B21  	STZ $211B      ; Clear HB
C3/57D3:	A90E    	LDA #$0E       ; Data size
C3/57D5:	8D1C21  	STA $211C      ; Set matrix B
C3/57D8:	8D1C21  	STA $211C      ; ...
C3/57DB:	60      	RTS

Define spell's MP cost
C3/57DC:	48      	PHA            ; Save spell
C3/57DD:	20C457  	JSR $57C4      ; Compute index
C3/57E0:	AE3421  	LDX $2134      ; Load it
C3/57E3:	BFC56AC4	LDA $C46AC5,X  ; Base MP cost
C3/57E7:	85E0    	STA $E0        ; Memorize it

Fork: Step Mine
C3/57E9:	68      	PLA            ; Spell
C3/57EA:	C999    	CMP #$99       ; Step Mine?
C3/57EC:	D00F    	BNE $57FD      ; Branch if not
C3/57EE:	AD1B02  	LDA $021B      ; Hours played
C3/57F1:	0A      	ASL A          ; Double them
C3/57F2:	85E0    	STA $E0        ; Set MP cost
C3/57F4:	AD1C02  	LDA $021C      ; Minutes played
C3/57F7:	C91E    	CMP #$1E       ; Under 30?
C3/57F9:	9002    	BCC $57FD      ; Branch if so
C3/57FB:	E6E0    	INC $E0        ; MP cost +1

Fork: Economizer
C3/57FD:	ADD711  	LDA $11D7      ; Gear effects
C3/5800:	8940    	BIT #$40       ; Economizer's?
C3/5802:	F005    	BEQ $5809      ; Branch if not
C3/5804:	7B      	TDC            ; Clear A
C3/5805:	A901    	LDA #$01       ; MP cost: 1
C3/5807:	8011    	BRA $581A      ; Put it in X

Fork: Gold Hairpin
C3/5809:	ADD711  	LDA $11D7      ; Gear effects
C3/580C:	8920    	BIT #$20       ; Gold Hairpin?
C3/580E:	F007    	BEQ $5817      ; Branch if not
C3/5810:	7B      	TDC            ; Clear A
C3/5811:	A5E0    	LDA $E0        ; MP cost
C3/5813:	1A      	INC A          ; Add one
C3/5814:	4A      	LSR A          ; Halve it
C3/5815:	8003    	BRA $581A      ; Put it in X

Fork: Normal MP cost
C3/5817:	7B      	TDC            ; Clear A
C3/5818:	A5E0    	LDA $E0        ; Base MP cost
C3/581A:	AA      	TAX            ; Put it in X
C3/581B:	60      	RTS

Enable or disable spell in Magic menu
C3/581C:	C92A    	CMP #$2A       ; Warp?
C3/581E:	F02A    	BEQ $584A      ; Branch if so
C3/5820:	C912    	CMP #$12       ; X-Zone?
C3/5822:	F019    	BEQ $583D      ; Branch if so
C3/5824:	20C457  	JSR $57C4      ; Compute index
C3/5827:	AE3421  	LDX $2134      ; Load it
C3/582A:	BFC36AC4	LDA $C46AC3,X  ; Spell properties
C3/582E:	2901    	AND #$01       ; Usable in field?
C3/5830:	F009    	BEQ $583B      ; Disable if not
C3/5832:	20BB57  	JSR $57BB      ; Spell
C3/5835:	20DC57  	JSR $57DC      ; Define MP cost
C3/5838:	4C5758  	JMP $5857      ; Test MP and Imp

Fork: Disable spell
C3/583B:	804B    	BRA $5888      ; Go directly...

Fork: X-Zone (unused feature)
C3/583D:	85E3    	STA $E3        ; Memorize spell
C3/583F:	AD0102  	LDA $0201      ; Area permissions
C3/5842:	8901    	BIT #$01       ; Forbid X-Zone?
C3/5844:	F0F5    	BEQ $583B      ; Disable if so
C3/5846:	A5E3    	LDA $E3        ; Spell number
C3/5848:	80DA    	BRA $5824      ; Do basic checks

Fork: Warp
C3/584A:	85E3    	STA $E3        ; Memorize spell
C3/584C:	AD0102  	LDA $0201      ; Area permissions
C3/584F:	8902    	BIT #$02       ; Can warp here?
C3/5851:	F0E8    	BEQ $583B      ; Disable if not
C3/5853:	A5E3    	LDA $E3        ; Spell number
C3/5855:	80CD    	BRA $5824      ; Do basic checks

Fork: Test Imp
C3/5857:	86E2    	STX $E2        ; Save MP cost
C3/5859:	20AC55  	JSR $55AC      ; Define Y
C3/585C:	B91400  	LDA $0014,Y    ; Actor's status
C3/585F:	2920    	AND #$20       ; Imp?
C3/5861:	F007    	BEQ $586A      ; Branch if not
C3/5863:	20BB57  	JSR $57BB      ; Spell
C3/5866:	C923    	CMP #$23       ; Imp?
C3/5868:	D01E    	BNE $5888      ; Disable if not

Fork: Test MP
C3/586A:	C220    	REP #$20       ; 16-bit A
C3/586C:	B90D00  	LDA $000D,Y    ; Actor's MP
C3/586F:	85E0    	STA $E0        ; Memorize it
C3/5871:	E220    	SEP #$20       ; 8-bit A
C3/5873:	A6E2    	LDX $E2        ; MP cost
C3/5875:	E4E0    	CPX $E0        ; Equals user MP?
C3/5877:	F002    	BEQ $587B      ; Enable if so
C3/5879:	B00D    	BCS $5888      ; Block if above

Fork: Enable spell
C3/587B:	7B      	TDC            ; Clear A
C3/587C:	A5E5    	LDA $E5        ; Spell slot
C3/587E:	AA      	TAX            ; Index it
C3/587F:	A920    	LDA #$20       ; Palette 0
C3/5881:	8529    	STA $29        ; Color: User's
C3/5883:	9F099E7E	STA $7E9E09,X  ; Enable spell
C3/5887:	60      	RTS

Fork: Disable spell
C3/5888:	7B      	TDC            ; Clear A
C3/5889:	A5E5    	LDA $E5        ; Spell slot
C3/588B:	AA      	TAX            ; Index it
C3/588C:	A928    	LDA #$28       ; Palette 2
C3/588E:	8529    	STA $29        ; Color: Gray
C3/5890:	9F099E7E	STA $7E9E09,X  ; Disable spell
C3/5894:	60      	RTS

Draw MP cost in corner of Magic menu
C3/5895:	A920    	LDA #$20       ; Palette 0
C3/5897:	8529    	STA $29        ; Color: User's
C3/5899:	C220    	REP #$20       ; 16-bit A
C3/589B:	A9D380  	LDA #$80D3     ; Tilemap ptr
C3/589E:	8F899E7E	STA $7E9E89    ; Set position
C3/58A2:	E220    	SEP #$20       ; 8-bit A
C3/58A4:	A28B9E  	LDX #$9E8B     ; 7E/9E8B
C3/58A7:	8E8121  	STX $2181      ; Set WRAM LBs
C3/58AA:	7B      	TDC            ; Clear A
C3/58AB:	A54B    	LDA $4B        ; List slot
C3/58AD:	AA      	TAX            ; Index it
C3/58AE:	BF899D7E	LDA $7E9D89,X  ; Spell in slot
C3/58B2:	20DC57  	JSR $57DC      ; Define MP cost
C3/58B5:	206305  	JSR $0563      ; Turn into text
C3/58B8:	A5F8    	LDA $F8        ; Tens digit
C3/58BA:	8D8021  	STA $2180      ; Add to string
C3/58BD:	A5F9    	LDA $F9        ; Ones digit
C3/58BF:	8D8021  	STA $2180      ; Add to string
C3/58C2:	9C8021  	STZ $2180      ; End string
C3/58C5:	4CB987  	JMP $87B9      ; Draw MP cost

Draw Lore list and menu title, create portrait
C3/58C8:	20A971  	JSR $71A9      ; Clear BG1 map A
C3/58CB:	200B59  	JSR $590B      ; Draw Lore list
C3/58CE:	A92C    	LDA #$2C       ; Palette 3
C3/58D0:	8529    	STA $29        ; Color: Blue
C3/58D2:	A0EE62  	LDY #$62EE     ; Text pointer
C3/58D5:	202603  	JSR $0326      ; Draw "Lore"
C3/58D8:	200268  	JSR $6802      ; Create portrait
C3/58DB:	4CB80F  	JMP $0FB8      ; Queue BG3 upload

Build Lore list
C3/58DE:	A2899D  	LDX #$9D89     ; 7E/9D89
C3/58E1:	8E8121  	STX $2181      ; Set WRAM LBs
C3/58E4:	A600    	LDX $00        ; Index: 0
C3/58E6:	64E0    	STZ $E0        ; 1st: Condemned
C3/58E8:	A00800  	LDY #$0008     ; Lores left: 8
C3/58EB:	BD291D  	LDA $1D29,X    ; 8 known lores
C3/58EE:	6A      	ROR A          ; Got current?
C3/58EF:	48      	PHA            ; Save 8 lores
C3/58F0:	9007    	BCC $58F9      ; Blank if not
C3/58F2:	A5E0    	LDA $E0        ; Lore number
C3/58F4:	8D8021  	STA $2180      ; Add to list
C3/58F7:	8005    	BRA $58FE      ; Skip 2 lines
C3/58F9:	A9FF    	LDA #$FF       ; Esper: None
C3/58FB:	8D8021  	STA $2180      ; Add to list
C3/58FE:	E6E0    	INC $E0        ; Lore number +1
C3/5900:	68      	PLA            ; 8 known lores
C3/5901:	88      	DEY            ; Lores left -1
C3/5902:	D0EA    	BNE $58EE      ; Loop till last
C3/5904:	E8      	INX            ; Point to next 8
C3/5905:	E00300  	CPX #$0003     ; Done 24 lores?
C3/5908:	D0DE    	BNE $58E8      ; Loop if not
C3/590A:	60      	RTS

Build and draw Lore list
C3/590B:	20DE58  	JSR $58DE      ; Build Lore list
C3/590E:	20788B  	JSR $8B78      ; Define $E5, $E6
C3/5911:	A00900  	LDY #$0009     ; Lores left: 9
C3/5914:	5A      	PHY            ; Save counter
C3/5915:	202559  	JSR $5925      ; Draw Lore row
C3/5918:	A5E6    	LDA $E6        ; BG1 write row
C3/591A:	1A      	INC A          ; Go 1 row down
C3/591B:	1A      	INC A          ; Go 1 row down
C3/591C:	291F    	AND #$1F       ; Stay in limits
C3/591E:	85E6    	STA $E6        ; Save changes
C3/5920:	7A      	PLY            ; Lores left
C3/5921:	88      	DEY            ; One less left
C3/5922:	D0F0    	BNE $5914      ; Loop till last
C3/5924:	60      	RTS

Draw a row of two Lore names, includng MP cost
C3/5925:	A920    	LDA #$20       ; Palette 0
C3/5927:	8529    	STA $29        ; Color: User's
C3/5929:	204059  	JSR $5940      ; Define source
C3/592C:	A20300  	LDX #$0003     ; X: 3
C3/592F:	204F59  	JSR $594F      ; Draw Lore A
C3/5932:	E6E5    	INC $E5        ; Lore slot +1
C3/5934:	204059  	JSR $5940      ; Define source
C3/5937:	A21100  	LDX #$0011     ; X: 17
C3/593A:	204F59  	JSR $594F      ; Draw Lore B
C3/593D:	E6E5    	INC $E5        ; Lore slot +1
C3/593F:	60      	RTS

Set source for loading Lore name
C3/5940:	A00800  	LDY #$0008     ; Letters: 8
C3/5943:	84EB    	STY $EB        ; Set src size
C3/5945:	A0B677  	LDY #$77B6     ; ED/77B6
C3/5948:	84EF    	STY $EF        ; Set src LBs
C3/594A:	A9ED    	LDA #$ED       ; Bank: ED
C3/594C:	85F1    	STA $F1        ; Set src HB
C3/594E:	60      	RTS

Draw Lore's name and MP cost
C3/594F:	A5E6    	LDA $E6        ; BG1 write row
C3/5951:	202088  	JSR $8820      ; Compute map ptr
C3/5954:	C220    	REP #$20       ; 16-bit A
C3/5956:	8A      	TXA            ; ...
C3/5957:	8F899E7E	STA $7E9E89    ; Set position
C3/595B:	E220    	SEP #$20       ; 8-bit A
C3/595D:	7B      	TDC            ; Clear A
C3/595E:	A5E5    	LDA $E5        ; Lore slot
C3/5960:	AA      	TAX            ; Index it
C3/5961:	BF899D7E	LDA $7E9D89,X  ; Lore in slot
C3/5965:	C9FF    	CMP #$FF       ; None?
C3/5967:	F030    	BEQ $5999      ; Blank if so
C3/5969:	A5E5    	LDA $E5        ; Lore slot
C3/596B:	20F28B  	JSR $8BF2      ; Load name
C3/596E:	A2939E  	LDX #$9E93     ; 7E/9E93
C3/5971:	8E8121  	STX $2181      ; Set WRAM LBs
C3/5974:	A9C7    	LDA #$C7       ; Char: ""
C3/5976:	8D8021  	STA $2180      ; Add to string
C3/5979:	A5E5    	LDA $E5        ; Lore slot
C3/597B:	18      	CLC            ; Prepare ADC
C3/597C:	698B    	ADC #$8B       ; Get attack ID
C3/597E:	20DC57  	JSR $57DC      ; Define MP cost
C3/5981:	206305  	JSR $0563      ; Turn into text
C3/5984:	A5F7    	LDA $F7        ; Hundreds digit
C3/5986:	8D8021  	STA $2180      ; Add to string
C3/5989:	A5F8    	LDA $F8        ; Tens digit
C3/598B:	8D8021  	STA $2180      ; Add to string
C3/598E:	A5F9    	LDA $F9        ; Ones digit
C3/5990:	8D8021  	STA $2180      ; Add to string
C3/5993:	9C8021  	STZ $2180      ; End string
C3/5996:	4CB987  	JMP $87B9      ; Draw string

Fork: Blank Lore slot
C3/5999:	A00C00  	LDY #$000C     ; Letters: 12
C3/599C:	A28B9E  	LDX #$9E8B     ; 7E/9E8B
C3/599F:	8E8121  	STX $2181      ; Set WRAM LBs
C3/59A2:	A9FF    	LDA #$FF       ; Space char
C3/59A4:	8D8021  	STA $2180      ; Add to string
C3/59A7:	88      	DEY            ; One less left
C3/59A8:	D0FA    	BNE $59A4      ; Loop till last
C3/59AA:	9C8021  	STZ $2180      ; End string
C3/59AD:	4CB987  	JMP $87B9      ; Draw 12 spaces

Draw SwdTech list and menu title, create portrait
C3/59B0:	20A971  	JSR $71A9      ; Clear BG1 map A
C3/59B3:	20C959  	JSR $59C9      ; Build tech list
C3/59B6:	2009AE  	JSR $AE09      ; And its tilemap
C3/59B9:	A92C    	LDA #$2C       ; Palette 3
C3/59BB:	8529    	STA $29        ; Color: Blue
C3/59BD:	A01B63  	LDY #$631B     ; Text pointer
C3/59C0:	202603  	JSR $0326      ; Draw "SwdTech"
C3/59C3:	200268  	JSR $6802      ; Create portrait
C3/59C6:	4CB80F  	JMP $0FB8      ; Queue BG3 upload

Build SwdTech list
C3/59C9:	A2899D  	LDX #$9D89     ; 7E/9D89
C3/59CC:	8E8121  	STX $2181      ; Set WRAM LBs
C3/59CF:	A00800  	LDY #$0008     ; Techs left: 8
C3/59D2:	64E0    	STZ $E0        ; 1st: Dispatch
C3/59D4:	7B      	TDC            ; ...
C3/59D5:	ADF71C  	LDA $1CF7      ; 8 known techs
C3/59D8:	6A      	ROR A          ; Got current?
C3/59D9:	48      	PHA            ; Save 8 techs
C3/59DA:	9004    	BCC $59E0      ; Blank if not
C3/59DC:	A5E0    	LDA $E0        ; SwdTech number
C3/59DE:	8002    	BRA $59E2      ; Skip a line
C3/59E0:	A9FF    	LDA #$FF       ; SwdTech: None
C3/59E2:	8D8021  	STA $2180      ; Add to list
C3/59E5:	E6E0    	INC $E0        ; Tech number +1
C3/59E7:	68      	PLA            ; 8 known techs
C3/59E8:	88      	DEY            ; Techs left -1
C3/59E9:	D0ED    	BNE $59D8      ; Loop till last
C3/59EB:	60      	RTS

Draw Rage list and menu title, create portrait
C3/59EC:	20A971  	JSR $71A9      ; Clear BG1 map A
C3/59EF:	20025A  	JSR $5A02      ; Draw Rage list
C3/59F2:	A92C    	LDA #$2C       ; Palette 3
C3/59F4:	8529    	STA $29        ; Color: Blue
C3/59F6:	A0F762  	LDY #$62F7     ; Text pointer
C3/59F9:	202603  	JSR $0326      ; Draw "Rage"
C3/59FC:	200268  	JSR $6802      ; Create portrait
C3/59FF:	4CB80F  	JMP $0FB8      ; Queue BG3 upload

Build and draw Rage list
C3/5A02:	201C5A  	JSR $5A1C      ; Build Rage list
C3/5A05:	20788B  	JSR $8B78      ; Define $E5, $E6
C3/5A08:	A00900  	LDY #$0009     ; Rows left: 9
C3/5A0B:	5A      	PHY            ; Save counter
C3/5A0C:	20495A  	JSR $5A49      ; Draw 2 Rages
C3/5A0F:	A5E6    	LDA $E6        ; BG1 write row
C3/5A11:	1A      	INC A          ; Go 1 row down
C3/5A12:	1A      	INC A          ; Go 1 row down
C3/5A13:	291F    	AND #$1F       ; Stay in limits
C3/5A15:	85E6    	STA $E6        ; Save changes
C3/5A17:	7A      	PLY            ; Rows left
C3/5A18:	88      	DEY            ; One less left
C3/5A19:	D0F0    	BNE $5A0B      ; Loop till last
C3/5A1B:	60      	RTS

Build Rage list
C3/5A1C:	A2899D  	LDX #$9D89     ; 7E/9D89
C3/5A1F:	8E8121  	STX $2181      ; Set WRAM LBs
C3/5A22:	A600    	LDX $00        ; Pack index: 0
C3/5A24:	64E0    	STZ $E0        ; Current: Guard
C3/5A26:	A00800  	LDY #$0008     ; Rages left: 8
C3/5A29:	BD2C1D  	LDA $1D2C,X    ; 8 known Rages
C3/5A2C:	6A      	ROR A          ; Got current?
C3/5A2D:	48      	PHA            ; Save 8 Rages
C3/5A2E:	9007    	BCC $5A37      ; Blank if not
C3/5A30:	A5E0    	LDA $E0        ; Rage number
C3/5A32:	8D8021  	STA $2180      ; Add to list
C3/5A35:	8005    	BRA $5A3C      ; Skip 2 lines
C3/5A37:	A9FF    	LDA #$FF       ; Rage: None
C3/5A39:	8D8021  	STA $2180      ; Add to list
C3/5A3C:	E6E0    	INC $E0        ; Rage number +1
C3/5A3E:	68      	PLA            ; 8 known Rages
C3/5A3F:	88      	DEY            ; Rages left -1
C3/5A40:	D0EA    	BNE $5A2C      ; Loop till last
C3/5A42:	E8      	INX            ; Point to next 8
C3/5A43:	E02000  	CPX #$0020     ; Done 256 Rages?
C3/5A46:	D0DE    	BNE $5A26      ; Loop if not
C3/5A48:	60      	RTS

Draw a row of two Rages
C3/5A49:	A920    	LDA #$20       ; Palette 0
C3/5A4B:	8529    	STA $29        ; Color: User's
C3/5A4D:	20645A  	JSR $5A64      ; Define source
C3/5A50:	A20500  	LDX #$0005     ; X: 5
C3/5A53:	20735A  	JSR $5A73      ; Draw Rage A
C3/5A56:	E6E5    	INC $E5        ; Rage slot +1
C3/5A58:	20645A  	JSR $5A64      ; Define source
C3/5A5B:	A21300  	LDX #$0013     ; X: 19
C3/5A5E:	20735A  	JSR $5A73      ; Draw Rage B
C3/5A61:	E6E5    	INC $E5        ; Rage slot +1
C3/5A63:	60      	RTS

Set source for loading enemy name
C3/5A64:	A00800  	LDY #$0008     ; Letters: 8
C3/5A67:	84EB    	STY $EB        ; Set src size
C3/5A69:	A000C8  	LDY #$C800     ; CF/C800
C3/5A6C:	84EF    	STY $EF        ; Set src LBs
C3/5A6E:	A9CF    	LDA #$CF       ; Bank: CF
C3/5A70:	85F1    	STA $F1        ; Set src HB
C3/5A72:	60      	RTS

Draw Rage name
C3/5A73:	A5E6    	LDA $E6        ; BG1 write row
C3/5A75:	202088  	JSR $8820      ; Compute map ptr
C3/5A78:	C220    	REP #$20       ; 16-bit A
C3/5A7A:	8A      	TXA            ; ...
C3/5A7B:	8F899E7E	STA $7E9E89    ; Set position
C3/5A7F:	E220    	SEP #$20       ; 8-bit A
C3/5A81:	7B      	TDC            ; Clear A
C3/5A82:	A5E5    	LDA $E5        ; Rage slot
C3/5A84:	AA      	TAX            ; Index it
C3/5A85:	BF899D7E	LDA $7E9D89,X  ; Rage in slot
C3/5A89:	C9FF    	CMP #$FF       ; None or Pugs?
C3/5A8B:	F008    	BEQ $5A95      ; Blank if so
C3/5A8D:	A5E5    	LDA $E5        ; Rage slot
C3/5A8F:	20F28B  	JSR $8BF2      ; Load name
C3/5A92:	4CB987  	JMP $87B9      ; Draw name

Fork: Blank Rage slot
C3/5A95:	A00800  	LDY #$0008     ; Spaces: 8
C3/5A98:	A28B9E  	LDX #$9E8B     ; 7E/9E8B
C3/5A9B:	8E8121  	STX $2181      ; Set WRAM LBs
C3/5A9E:	A9FF    	LDA #$FF       ; Space char
C3/5AA0:	8D8021  	STA $2180      ; Add to string
C3/5AA3:	88      	DEY            ; One less left
C3/5AA4:	D0FA    	BNE $5AA0      ; Loop till last
C3/5AA6:	9C8021  	STZ $2180      ; End string
C3/5AA9:	4CB987  	JMP $87B9      ; Draw 8 spaces

Draw esper list and menu title, create portrait
C3/5AAC:	20A971  	JSR $71A9      ; Clear BG1 map A
C3/5AAF:	A920    	LDA #$20       ; Palette 0
C3/5AB1:	8529    	STA $29        ; Color: User's
C3/5AB3:	20C65A  	JSR $5AC6      ; Draw esper list
C3/5AB6:	A92C    	LDA #$2C       ; Palette 3
C3/5AB8:	8529    	STA $29        ; Color: Blue
C3/5ABA:	A00963  	LDY #$6309     ; Text pointer
C3/5ABD:	202603  	JSR $0326      ; Draw "Espers"
C3/5AC0:	200268  	JSR $6802      ; Create portrait
C3/5AC3:	4CB80F  	JMP $0FB8      ; Queue BG3 upload

Build and draw esper list
C3/5AC6:	20E05A  	JSR $5AE0      ; Build esper list
C3/5AC9:	20788B  	JSR $8B78      ; Define $E5, $E6
C3/5ACC:	A00900  	LDY #$0009     ; Rows left: 9
C3/5ACF:	5A      	PHY            ; Save counter
C3/5AD0:	203D5B  	JSR $5B3D      ; Draw 2 espers
C3/5AD3:	A5E6    	LDA $E6        ; BG1 write row
C3/5AD5:	1A      	INC A          ; Go 1 row down
C3/5AD6:	1A      	INC A          ; Go 1 row down
C3/5AD7:	291F    	AND #$1F       ; Stay in limits
C3/5AD9:	85E6    	STA $E6        ; Save changes
C3/5ADB:	7A      	PLY            ; Rows left
C3/5ADC:	88      	DEY            ; One less left
C3/5ADD:	D0F0    	BNE $5ACF      ; Loop till last
C3/5ADF:	60      	RTS

Build sorted esper list
C3/5AE0:	A2ED9D  	LDX #$9DED     ; 7E/9DED
C3/5AE3:	8E8121  	STX $2181      ; Set WRAM LBs
C3/5AE6:	A600    	LDX $00        ; Pack index: 0
C3/5AE8:	64E0    	STZ $E0        ; Current: Ramuh
C3/5AEA:	A00800  	LDY #$0008     ; Espers left: 8
C3/5AED:	BD691A  	LDA $1A69,X    ; 8 owned espers
C3/5AF0:	6A      	ROR A          ; Got current?
C3/5AF1:	48      	PHA            ; Save 8 espers
C3/5AF2:	9007    	BCC $5AFB      ; Blank if not
C3/5AF4:	A5E0    	LDA $E0        ; Esper number
C3/5AF6:	8D8021  	STA $2180      ; Add to list
C3/5AF9:	8005    	BRA $5B00      ; Skip 2 lines
C3/5AFB:	A9FF    	LDA #$FF       ; Esper: None
C3/5AFD:	8D8021  	STA $2180      ; Add to list
C3/5B00:	E6E0    	INC $E0        ; Esper number +1
C3/5B02:	68      	PLA            ; 8 owned espers
C3/5B03:	88      	DEY            ; Espers left -1
C3/5B04:	D0EA    	BNE $5AF0      ; Loop till last
C3/5B06:	E8      	INX            ; Point to next 8
C3/5B07:	E00400  	CPX #$0004     ; Done 32 espers?
C3/5B0A:	D0DE    	BNE $5AEA      ; Loop if not

Fork: Clear sorted list
C3/5B0C:	A2899D  	LDX #$9D89     ; 7E/9D89
C3/5B0F:	8E8121  	STX $2181      ; Set WRAM LBs
C3/5B12:	A9FF    	LDA #$FF       ; Esper: None
C3/5B14:	A21D00  	LDX #$001D     ; Slots left: 29
C3/5B17:	8D8021  	STA $2180      ; Clear list slot
C3/5B1A:	CA      	DEX            ; One less left
C3/5B1B:	D0FA    	BNE $5B17      ; Loop till last

Fork: Build sorted list
C3/5B1D:	A2ED9D  	LDX #$9DED     ; 7E/9DED
C3/5B20:	8E8121  	STX $2181      ; Set WRAM LBs
C3/5B23:	A01B00  	LDY #$001B     ; Slots left: 27
C3/5B26:	7B      	TDC            ; Clear A
C3/5B27:	AD8021  	LDA $2180      ; Esper in slot
C3/5B2A:	300D    	BMI $5B39      ; Skip if none
C3/5B2C:	48      	PHA            ; Memorize it
C3/5B2D:	AA      	TAX            ; Index it
C3/5B2E:	BFB5F9D1	LDA $D1F9B5,X  ; Intended slot
C3/5B32:	3A      	DEC A          ; Subtract 1
C3/5B33:	AA      	TAX            ; Index it
C3/5B34:	68      	PLA            ; Esper number
C3/5B35:	9F899D7E	STA $7E9D89,X  ; Add to new list
C3/5B39:	88      	DEY            ; One less esper
C3/5B3A:	D0EB    	BNE $5B27      ; Loop till last
C3/5B3C:	60      	RTS

Draw a row of two esper names with MP cost
C3/5B3D:	20545B  	JSR $5B54      ; Define source
C3/5B40:	A20300  	LDX #$0003     ; X: 3
C3/5B43:	20635B  	JSR $5B63      ; Draw esper A
C3/5B46:	E6E5    	INC $E5        ; Esper slot +1
C3/5B48:	20545B  	JSR $5B54      ; Define source
C3/5B4B:	A21100  	LDX #$0011     ; X: 17
C3/5B4E:	20635B  	JSR $5B63      ; Draw esper B
C3/5B51:	E6E5    	INC $E5        ; Esper slot +1
C3/5B53:	60      	RTS

Set source for loading esper name
C3/5B54:	A00800  	LDY #$0008     ; Letters: 8
C3/5B57:	84EB    	STY $EB        ; Set src size
C3/5B59:	A00E75  	LDY #$750E     ; ED/750E
C3/5B5C:	84EF    	STY $EF        ; Set src LBs
C3/5B5E:	A9ED    	LDA #$ED       ; Bank: ED
C3/5B60:	85F1    	STA $F1        ; Set src HB
C3/5B62:	60      	RTS

Draw esper's name and MP cost
C3/5B63:	A5E6    	LDA $E6        ; BG1 write row
C3/5B65:	202088  	JSR $8820      ; Compute map ptr
C3/5B68:	C220    	REP #$20       ; 16-bit A
C3/5B6A:	8A      	TXA            ; ...
C3/5B6B:	8F899E7E	STA $7E9E89    ; Set position
C3/5B6F:	E220    	SEP #$20       ; 8-bit A
C3/5B71:	7B      	TDC            ; Clear A
C3/5B72:	A5E5    	LDA $E5        ; Esper slot
C3/5B74:	AA      	TAX            ; Index it
C3/5B75:	BF899D7E	LDA $7E9D89,X  ; Esper in slot
C3/5B79:	C9FF    	CMP #$FF       ; None?
C3/5B7B:	F039    	BEQ $5BB6      ; Blank if so
C3/5B7D:	20CD5B  	JSR $5BCD      ; Choose palette
C3/5B80:	20F28B  	JSR $8BF2      ; Load name
C3/5B83:	7B      	TDC            ; ...
C3/5B84:	A5E5    	LDA $E5        ; Esper slot
C3/5B86:	AA      	TAX            ; Index it
C3/5B87:	BF899D7E	LDA $7E9D89,X  ; Esper in slot
C3/5B8B:	18      	CLC            ; Prepare ADC
C3/5B8C:	6936    	ADC #$36       ; Get attack ID
C3/5B8E:	20DC57  	JSR $57DC      ; Define MP cost
C3/5B91:	48      	PHA            ; Memorize it
C3/5B92:	A2939E  	LDX #$9E93     ; 7E/9E93
C3/5B95:	8E8121  	STX $2181      ; Set WRAM LBs
C3/5B98:	A9C7    	LDA #$C7       ; Char: ""
C3/5B9A:	8D8021  	STA $2180      ; Add to string
C3/5B9D:	68      	PLA            ; MP cost
C3/5B9E:	206305  	JSR $0563      ; Turn into text
C3/5BA1:	A5F7    	LDA $F7        ; Hundreds digit
C3/5BA3:	8D8021  	STA $2180      ; Add to string
C3/5BA6:	A5F8    	LDA $F8        ; Tens digit
C3/5BA8:	8D8021  	STA $2180      ; Add to string
C3/5BAB:	A5F9    	LDA $F9        ; Ones digit
C3/5BAD:	8D8021  	STA $2180      ; Add to string
C3/5BB0:	9C8021  	STZ $2180      ; End string
C3/5BB3:	4CB987  	JMP $87B9      ; Draw string

Fork: Blank esper slot
C3/5BB6:	A00C00  	LDY #$000C     ; Spaces: 12
C3/5BB9:	A28B9E  	LDX #$9E8B     ; 7E/9E8B
C3/5BBC:	8E8121  	STX $2181      ; Set WRAM LBs
C3/5BBF:	A9FF    	LDA #$FF       ; Space char
C3/5BC1:	8D8021  	STA $2180      ; Add to string
C3/5BC4:	88      	DEY            ; One less left
C3/5BC5:	D0FA    	BNE $5BC1      ; Loop till last
C3/5BC7:	9C8021  	STZ $2180      ; End string
C3/5BCA:	4CB987  	JMP $87B9      ; Draw 12 spaces

Define esper name color
C3/5BCD:	85E0    	STA $E0        ; Save esper
C3/5BCF:	A600    	LDX $00        ; 1st: Terra
C3/5BD1:	A01000  	LDY #$0010     ; Actors: 16
C3/5BD4:	BD1E16  	LDA $161E,X    ; Actor's esper
C3/5BD7:	C5E0    	CMP $E0        ; Matches ours?
C3/5BD9:	F011    	BEQ $5BEC      ; Gray out if so
C3/5BDB:	C220    	REP #$20       ; 16-bit A
C3/5BDD:	8A      	TXA            ; Actor address
C3/5BDE:	18      	CLC            ; Prepare ADC
C3/5BDF:	692500  	ADC #$0025     ; Actor slot +1
C3/5BE2:	AA      	TAX            ; Reindex it
C3/5BE3:	E220    	SEP #$20       ; 8-bit A
C3/5BE5:	88      	DEY            ; One less actor
C3/5BE6:	D0EC    	BNE $5BD4      ; Loop till last
C3/5BE8:	A920    	LDA #$20       ; Color: User's
C3/5BEA:	8002    	BRA $5BEE      ; Skip a line
C3/5BEC:	A928    	LDA #$28       ; Color: Gray
C3/5BEE:	8529    	STA $29        ; Set palette
C3/5BF0:	A5E0    	LDA $E0        ; Esper to draw
C3/5BF2:	60      	RTS

Draw "<actor> has it!" in esper data menu
C3/5BF3:	A920    	LDA #$20       ; Palette 0
C3/5BF5:	8529    	STA $29        ; Color: User's
C3/5BF7:	C220    	REP #$20       ; 16-bit A
C3/5BF9:	A9DD40  	LDA #$40DD     ; Tilemap ptr
C3/5BFC:	8F899E7E	STA $7E9E89    ; Set position
C3/5C00:	A98B9E  	LDA #$9E8B     ; 7E/9E8B
C3/5C03:	8D8121  	STA $2181      ; Set WRAM LBs
C3/5C06:	E220    	SEP #$20       ; 8-bit A
C3/5C08:	A00600  	LDY #$0006     ; Letters: 6
C3/5C0B:	BD0216  	LDA $1602,X    ; Name letter
C3/5C0E:	C9FF    	CMP #$FF       ; Terminator?
C3/5C10:	F007    	BEQ $5C19      ; Done if so
C3/5C12:	8D8021  	STA $2180      ; Add to string
C3/5C15:	E8      	INX            ; Point to next
C3/5C16:	88      	DEY            ; One less left
C3/5C17:	D0F2    	BNE $5C0B      ; Loop till last
C3/5C19:	A600    	LDX $00        ; Letter: 1st
C3/5C1B:	BF3B63C3	LDA $C3633B,X  ; Message letter
C3/5C1F:	F006    	BEQ $5C27      ; Done if end
C3/5C21:	8D8021  	STA $2180      ; Add to string
C3/5C24:	E8      	INX            ; Point to next
C3/5C25:	80F4    	BRA $5C1B      ; Do next letter
C3/5C27:	9C8021  	STZ $2180      ; End string
C3/5C2A:	4CB987  	JMP $87B9      ; Draw message

Draw Blitz inputs and menu title, create portrait
C3/5C2D:	20A971  	JSR $71A9      ; Clear BG1 map A
C3/5C30:	20435C  	JSR $5C43      ; Draw inputs
C3/5C33:	A92C    	LDA #$2C       ; Palette 3
C3/5C35:	8529    	STA $29        ; Color: Blue
C3/5C37:	A01263  	LDY #$6312     ; Text pointer
C3/5C3A:	202603  	JSR $0326      ; Draw "Blitz"
C3/5C3D:	200268  	JSR $6802      ; Create portrait
C3/5C40:	4CB80F  	JMP $0FB8      ; Queue BG3 upload

Build Blitz list and draw Blitz inputs
C3/5C43:	20785C  	JSR $5C78      ; Build Blitz list
C3/5C46:	20788B  	JSR $8B78      ; Define $E5, $E6
C3/5C49:	64E5    	STZ $E5        ; Blitz slot: 1
C3/5C4B:	E6E6    	INC $E6        ; BG1 write row +1
C3/5C4D:	E6E6    	INC $E6        ; BG1 write row +1
C3/5C4F:	E6E6    	INC $E6        ; BG1 write row +1
C3/5C51:	A00400  	LDY #$0004     ; Rows left: 4
C3/5C54:	5A      	PHY            ; Save counter
C3/5C55:	20675C  	JSR $5C67      ; Draw inputs x2
C3/5C58:	A5E6    	LDA $E6        ; BG1 write row
C3/5C5A:	1A      	INC A          ; Go 1 row down
C3/5C5B:	1A      	INC A          ; Go 1 row down
C3/5C5C:	1A      	INC A          ; Go 1 row down
C3/5C5D:	1A      	INC A          ; Go 1 row down
C3/5C5E:	291F    	AND #$1F       ; Stay in limits
C3/5C60:	85E6    	STA $E6        ; Save changes
C3/5C62:	7A      	PLY            ; Rows left
C3/5C63:	88      	DEY            ; One less left
C3/5C64:	D0EE    	BNE $5C54      ; Loop till last
C3/5C66:	60      	RTS

Draw a row of two sets of Blitz inputs
C3/5C67:	A20500  	LDX #$0005     ; X: 5
C3/5C6A:	20A05C  	JSR $5CA0      ; Draw inputs A
C3/5C6D:	E6E5    	INC $E5        ; Blitz slot +1
C3/5C6F:	A21300  	LDX #$0013     ; X: 19
C3/5C72:	20A05C  	JSR $5CA0      ; Draw inputs B
C3/5C75:	E6E5    	INC $E5        ; Blitz slot +1
C3/5C77:	60      	RTS

Build Blitz list
C3/5C78:	AD281D  	LDA $1D28      ; Known Blitzes
C3/5C7B:	8003    	BRA $5C80      ; Run Dance code

Build Dance list
C3/5C7D:	AD4C1D  	LDA $1D4C      ; Known Dances
C3/5C80:	A2899D  	LDX #$9D89     ; 7E/9D89
C3/5C83:	8E8121  	STX $2181      ; Set WRAM LBs
C3/5C86:	A600    	LDX $00        ; 1st: Wind Song
C3/5C88:	A00800  	LDY #$0008     ; Dances left: 8
C3/5C8B:	6A      	ROR A          ; Know current?
C3/5C8C:	48      	PHA            ; Save 8 Dances
C3/5C8D:	9006    	BCC $5C95      ; Blank if not
C3/5C8F:	8A      	TXA            ; Dance number
C3/5C90:	8D8021  	STA $2180      ; Add to list
C3/5C93:	8005    	BRA $5C9A      ; Skip 2 lines
C3/5C95:	A9FF    	LDA #$FF       ; Dance: None
C3/5C97:	8D8021  	STA $2180      ; Add to list
C3/5C9A:	E8      	INX            ; Dance number +1
C3/5C9B:	68      	PLA            ; Known Dances
C3/5C9C:	88      	DEY            ; One less Dance
C3/5C9D:	D0EC    	BNE $5C8B      ; Loop till last
C3/5C9F:	60      	RTS

Draw Blitz's inputs
C3/5CA0:	A5E6    	LDA $E6        ; BG1 write row
C3/5CA2:	202088  	JSR $8820      ; Compute map ptr
C3/5CA5:	C220    	REP #$20       ; 16-bit A
C3/5CA7:	8A      	TXA            ; ...
C3/5CA8:	8F899E7E	STA $7E9E89    ; Set position
C3/5CAC:	E220    	SEP #$20       ; 8-bit A
C3/5CAE:	7B      	TDC            ; Clear A
C3/5CAF:	A5E5    	LDA $E5        ; Blitz slot
C3/5CB1:	AA      	TAX            ; Index it
C3/5CB2:	BF899D7E	LDA $7E9D89,X  ; Blitz in slot
C3/5CB6:	C9FF    	CMP #$FF       ; None?
C3/5CB8:	F00F    	BEQ $5CC9      ; Blank if so
C3/5CBA:	20E05C  	JSR $5CE0      ; Build tilemap
C3/5CBD:	A0899E  	LDY #$9E89     ; 7E/9E89
C3/5CC0:	84E7    	STY $E7        ; Set src LBs
C3/5CC2:	A97E    	LDA #$7E       ; Bank: 7E
C3/5CC4:	85E9    	STA $E9        ; Set src HB
C3/5CC6:	4C195D  	JMP $5D19      ; Move tilemap

Fork: Blank Blitz slot
C3/5CC9:	A00800  	LDY #$0008     ; Spaces: 8
C3/5CCC:	A28B9E  	LDX #$9E8B     ; 7E/9E8B
C3/5CCF:	8E8121  	STX $2181      ; Set WRAM LBs
C3/5CD2:	A9FF    	LDA #$FF       ; Space char
C3/5CD4:	8D8021  	STA $2180      ; Add to string
C3/5CD7:	88      	DEY            ; One less left
C3/5CD8:	D0FA    	BNE $5CD4      ; Loop till last
C3/5CDA:	9C8021  	STZ $2180      ; End string
C3/5CDD:	4CB987  	JMP $87B9      ; Draw 8 spaces

Build tilemap for Blitz's inputs
C3/5CE0:	48      	PHA            ; Save Blitz
C3/5CE1:	0A      	ASL A          ; x2
C3/5CE2:	0A      	ASL A          ; x4
C3/5CE3:	0A      	ASL A          ; x8
C3/5CE4:	85E0    	STA $E0        ; Memorize it
C3/5CE6:	68      	PLA            ; Blitz
C3/5CE7:	0A      	ASL A          ; x2
C3/5CE8:	0A      	ASL A          ; x4
C3/5CE9:	18      	CLC            ; ...
C3/5CEA:	65E0    	ADC $E0        ; x12
C3/5CEC:	AA      	TAX            ; Index it
C3/5CED:	A08B9E  	LDY #$9E8B     ; 7E/9E8B
C3/5CF0:	8C8121  	STY $2181      ; Set WRAM LBs
C3/5CF3:	A00A00  	LDY #$000A     ; Inputs: 10
C3/5CF6:	DA      	PHX            ; Save index
C3/5CF7:	BF407AC4	LDA $C47A40,X  ; Blitz input
C3/5CFB:	0A      	ASL A          ; Double it
C3/5CFC:	AA      	TAX            ; Index it
C3/5CFD:	BF7462C3	LDA $C36274,X  ; Tile number
C3/5D01:	8D8021  	STA $2180      ; Save in WRAM
C3/5D04:	E8      	INX            ; Index +1
C3/5D05:	BF7462C3	LDA $C36274,X  ; Attributes
C3/5D09:	8D8021  	STA $2180      ; Save in WRAM
C3/5D0C:	E8      	INX            ; ...
C3/5D0D:	FA      	PLX            ; Input index
C3/5D0E:	E8      	INX            ; Input index +1
C3/5D0F:	88      	DEY            ; One less input
C3/5D10:	D0E4    	BNE $5CF6      ; Loop till last
C3/5D12:	9C8021  	STZ $2180      ; End string LB
C3/5D15:	9C8021  	STZ $2180      ; End string HB
C3/5D18:	60      	RTS

Apply tilemap for Blitz's inputs
C3/5D19:	A400    	LDY $00        ; Index: 0
C3/5D1B:	C220    	REP #$20       ; 16-bit A
C3/5D1D:	A7E7    	LDA [$E7]      ; Tilemap ptr
C3/5D1F:	85EB    	STA $EB        ; Set dest LBs
C3/5D21:	E6E7    	INC $E7        ; Source +1
C3/5D23:	E6E7    	INC $E7        ; Source +1
C3/5D25:	E220    	SEP #$20       ; 8-bit A
C3/5D27:	A97E    	LDA #$7E       ; Bank: 7E
C3/5D29:	85ED    	STA $ED        ; Set dest HB
C3/5D2B:	C220    	REP #$20       ; 16-bit A
C3/5D2D:	B7E7    	LDA [$E7],Y    ; Tile data
C3/5D2F:	F008    	BEQ $5D39      ; Exit if end
C3/5D31:	97EB    	STA [$EB],Y    ; Add to map
C3/5D33:	E220    	SEP #$20       ; 8-bit A
C3/5D35:	C8      	INY            ; Index +1
C3/5D36:	C8      	INY            ; Index +1
C3/5D37:	80F2    	BRA $5D2B      ; Do next tile
C3/5D39:	E220    	SEP #$20       ; 8-bit A
C3/5D3B:	60      	RTS

Load esper description
C3/5D3C:	206162  	JSR $6261      ; Load pointers
C3/5D3F:	4C875D  	JMP $5D87      ; Load description

Load Magic description
C3/5D42:	203B62  	JSR $623B      ; Load pointers
C3/5D45:	4C875D  	JMP $5D87      ; Load description

Load Lore description
C3/5D48:	A23EFF  	LDX #$FF3E     ; CF/FF3E
C3/5D4B:	86E7    	STX $E7        ; Set ptr loc LBs
C3/5D4D:	A200FE  	LDX #$FE00     ; ED/FE00
C3/5D50:	86EB    	STX $EB        ; Set text loc LBs
C3/5D52:	A9CF    	LDA #$CF       ; Bank: CF
C3/5D54:	85E9    	STA $E9        ; Set ptr loc HB
C3/5D56:	A9ED    	LDA #$ED       ; Bank: ED
C3/5D58:	85ED    	STA $ED        ; Set text loc HB
C3/5D5A:	4C875D  	JMP $5D87      ; Load description

Load SwdTech description
C3/5D5D:	A2AEFF  	LDX #$FFAE     ; CF/FFAE
C3/5D60:	86E7    	STX $E7        ; Set ptr loc LBs
C3/5D62:	A200FD  	LDX #$FD00     ; CF/FD00
C3/5D65:	86EB    	STX $EB        ; Set text loc LBs
C3/5D67:	A9CF    	LDA #$CF       ; Bank: CF
C3/5D69:	85E9    	STA $E9        ; Set ptr loc HB
C3/5D6B:	A9CF    	LDA #$CF       ; ...
C3/5D6D:	85ED    	STA $ED        ; Set text loc HB
C3/5D6F:	4C875D  	JMP $5D87      ; Load description

Load Blitz description
C3/5D72:	A29EFF  	LDX #$FF9E     ; CF/FF9E
C3/5D75:	86E7    	STX $E7        ; Set ptr loc LBs
C3/5D77:	A200FC  	LDX #$FC00     ; CF/FC00
C3/5D7A:	86EB    	STX $EB        ; Set text loc LBs
C3/5D7C:	A9CF    	LDA #$CF       ; Bank: CF
C3/5D7E:	85E9    	STA $E9        ; Set ptr loc HB
C3/5D80:	A9CF    	LDA #$CF       ; ...
C3/5D82:	85ED    	STA $ED        ; Set text loc HB
C3/5D84:	4C875D  	JMP $5D87      ; ...

Load skill or item description
C3/5D87:	A2C99E  	LDX #$9EC9     ; 7E/9EC9
C3/5D8A:	8E8121  	STX $2181      ; Set WRAM LBs
C3/5D8D:	7B      	TDC            ; Clear A
C3/5D8E:	A54B    	LDA $4B        ; List slot
C3/5D90:	AA      	TAX            ; Index it
C3/5D91:	BF899D7E	LDA $7E9D89,X  ; Skill or item
C3/5D95:	C9FF    	CMP #$FF       ; Empty slot?
C3/5D97:	F031    	BEQ $5DCA      ; Blank if so
C3/5D99:	C220    	REP #$20       ; 16-bit A
C3/5D9B:	0A      	ASL A          ; Double it
C3/5D9C:	A8      	TAY            ; Index it
C3/5D9D:	B7E7    	LDA [$E7],Y    ; Relative ptr
C3/5D9F:	A8      	TAY            ; Index it
C3/5DA0:	E220    	SEP #$20       ; 8-bit A
C3/5DA2:	B7EB    	LDA [$EB],Y    ; Text character
C3/5DA4:	F006    	BEQ $5DAC      ; Branch if 00h
C3/5DA6:	8D8021  	STA $2180      ; Add to string
C3/5DA9:	C8      	INY            ; Index +1
C3/5DAA:	80F6    	BRA $5DA2      ; Do next char

Fork: Check if terminator
C3/5DAC:	88      	DEY            ; Index -1
C3/5DAD:	B7EB    	LDA [$EB],Y    ; Previous char
C3/5DAF:	C8      	INY            ; Index +1
C3/5DB0:	C91C    	CMP #$1C       ; Command 1C?
C3/5DB2:	F010    	BEQ $5DC4      ; Branch if so
C3/5DB4:	C91D    	CMP #$1D       ; Command 1D?
C3/5DB6:	F00C    	BEQ $5DC4      ; Branch if so
C3/5DB8:	C91E    	CMP #$1E       ; Command 1E?
C3/5DBA:	F008    	BEQ $5DC4      ; Branch if so
C3/5DBC:	C91F    	CMP #$1F       ; Command 1F?
C3/5DBE:	F004    	BEQ $5DC4      ; Branch if so
C3/5DC0:	9C8021  	STZ $2180      ; End string
C3/5DC3:	60      	RTS

Fork: Resume past control code
C3/5DC4:	9C8021  	STZ $2180      ; Add 00h to msg
C3/5DC7:	C8      	INY            ; Index +1
C3/5DC8:	80D8    	BRA $5DA2      ; Do next char

Fork: Empty slot (space is for item usage menu)
C3/5DCA:	A9FF    	LDA #$FF       ; Space char
C3/5DCC:	8D8021  	STA $2180      ; Add to string
C3/5DCF:	80EF    	BRA $5DC0      ; End string

Draw Dance list and menu title, create portrait
C3/5DD1:	20A971  	JSR $71A9      ; Clear BG1 map A
C3/5DD4:	20E75D  	JSR $5DE7      ; Draw Dance list
C3/5DD7:	A92C    	LDA #$2C       ; Palette 3
C3/5DD9:	8529    	STA $29        ; Color: Blue
C3/5DDB:	A00063  	LDY #$6300     ; Text pointer
C3/5DDE:	202603  	JSR $0326      ; Draw "Dance"
C3/5DE1:	200268  	JSR $6802      ; Create portrait
C3/5DE4:	4CB80F  	JMP $0FB8      ; Queue BG3 upload

Build and draw Dance list
C3/5DE7:	207D5C  	JSR $5C7D      ; Build Dance list
C3/5DEA:	20788B  	JSR $8B78      ; Define $E5, $E6
C3/5DED:	E6E6    	INC $E6        ; BG1 write row +1
C3/5DEF:	E6E6    	INC $E6        ; BG1 write row +1
C3/5DF1:	64E5    	STZ $E5        ; Dance slot: 1
C3/5DF3:	A00400  	LDY #$0004     ; Rows left: 4
C3/5DF6:	5A      	PHY            ; Save counter
C3/5DF7:	20095E  	JSR $5E09      ; Draw 2 dances
C3/5DFA:	A5E6    	LDA $E6        ; BG1 write row
C3/5DFC:	1A      	INC A          ; Go 1 row down
C3/5DFD:	1A      	INC A          ; Go 1 row down
C3/5DFE:	1A      	INC A          ; Go 1 row down
C3/5DFF:	1A      	INC A          ; Go 1 row down
C3/5E00:	291F    	AND #$1F       ; Stay in limits
C3/5E02:	85E6    	STA $E6        ; Save changes
C3/5E04:	7A      	PLY            ; Rows left
C3/5E05:	88      	DEY            ; One less left
C3/5E06:	D0EE    	BNE $5DF6      ; Loop till last
C3/5E08:	60      	RTS

Draw a row of two Dance names
C3/5E09:	20205E  	JSR $5E20      ; Define source
C3/5E0C:	A20500  	LDX #$0005     ; X: 5
C3/5E0F:	202F5E  	JSR $5E2F      ; Draw Dance A
C3/5E12:	E6E5    	INC $E5        ; Dance slot +1
C3/5E14:	20205E  	JSR $5E20      ; Define source
C3/5E17:	A21300  	LDX #$0013     ; X: 19
C3/5E1A:	202F5E  	JSR $5E2F      ; Draw Dance B
C3/5E1D:	E6E5    	INC $E5        ; Dance slot +1
C3/5E1F:	60      	RTS

Set source for loading Dance name
C3/5E20:	A00800  	LDY #$0008     ; Letters: 8
C3/5E23:	84EB    	STY $EB        ; Set src size
C3/5E25:	A0517C  	LDY #$7C51     ; ED/7C51
C3/5E28:	84EF    	STY $EF        ; Set src LBs
C3/5E2A:	A9ED    	LDA #$ED       ; Bank: ED
C3/5E2C:	85F1    	STA $F1        ; Set src HB
C3/5E2E:	60      	RTS

Draw Dance name
C3/5E2F:	A5E6    	LDA $E6        ; BG1 write row
C3/5E31:	202088  	JSR $8820      ; Compute map ptr
C3/5E34:	C220    	REP #$20       ; 16-bit A
C3/5E36:	8A      	TXA            ; ...
C3/5E37:	8F899E7E	STA $7E9E89    ; Set position
C3/5E3B:	E220    	SEP #$20       ; 8-bit A
C3/5E3D:	7B      	TDC            ; Clear A
C3/5E3E:	A5E5    	LDA $E5        ; Dance slot
C3/5E40:	AA      	TAX            ; Index it
C3/5E41:	BF899D7E	LDA $7E9D89,X  ; Dance in slot
C3/5E45:	C9FF    	CMP #$FF       ; Empty slot?
C3/5E47:	F006    	BEQ $5E4F      ; Blank if so
C3/5E49:	20F28B  	JSR $8BF2      ; Load name
C3/5E4C:	4CB987  	JMP $87B9      ; Draw name

Fork: Blank Dance slot
C3/5E4F:	A00800  	LDY #$0008     ; Spaces: 8
C3/5E52:	A28B9E  	LDX #$9E8B     ; 7E/9E8B
C3/5E55:	8E8121  	STX $2181      ; Set WRAM LBs
C3/5E58:	A9FF    	LDA #$FF       ; Space char
C3/5E5A:	8D8021  	STA $2180      ; Add to string
C3/5E5D:	88      	DEY            ; One less left
C3/5E5E:	D0FA    	BNE $5E5A      ; Loop till last
C3/5E60:	9C8021  	STZ $2180      ; End string
C3/5E63:	4CB987  	JMP $87B9      ; Draw 8 spaces

Set to delete portrait in Skills menu
C3/5E66:	7B      	TDC            ; Clear A
C3/5E67:	A560    	LDA $60        ; Queue index
C3/5E69:	AA      	TAX            ; Index it
C3/5E6A:	A9FF    	LDA #$FF       ; Null value
C3/5E6C:	9FC9357E	STA $7E35C9,X  ; Portrait: Off
C3/5E70:	60      	RTS

Draw and upload spell usage menu
C3/5E71:	20BC71  	JSR $71BC      ; Clear BG2 map A
C3/5E74:	A09E5E  	LDY #$5E9E     ; C3/5E9E
C3/5E77:	20C403  	JSR $03C4      ; Draw party box
C3/5E7A:	A0A25E  	LDY #$5EA2     ; C3/5EA2
C3/5E7D:	20C403  	JSR $03C4      ; Draw spell box
C3/5E80:	A0A65E  	LDY #$5EA6     ; C3/5EA6
C3/5E83:	20C403  	JSR $03C4      ; Draw cost box
C3/5E86:	20BD0E  	JSR $0EBD      ; Upload windows
C3/5E89:	20AD71  	JSR $71AD      ; Clear BG1 map B
C3/5E8C:	A0C0FF  	LDY #$FFC0     ; X: -64 = 448
C3/5E8F:	8435    	STY $35        ; Set BG1 X-Pos
C3/5E91:	A902    	LDA #$02       ; Portrait row bit
C3/5E93:	0445    	TSB $45        ; Ignore back row
C3/5E95:	202532  	JSR $3225      ; Draw party info
C3/5E98:	20AA5E  	JSR $5EAA      ; Draw spell, cost
C3/5E9B:	4C3A32  	JMP $323A      ; Upload text maps

Window layout for spell usage menu
C3/5E9E:	9D581318	; 21x26 at $589D (Party)
C3/5EA2:	8B580702	; 09x04 at $588B (Spell)
C3/5EA6:	8B590703	; 09x05 at $598B (MP cost)

Draw spell name and cost message for spell usage menu
C3/5EAA:	A920    	LDA #$20       ; Palette 0
C3/5EAC:	8529    	STA $29        ; Color: User's
C3/5EAE:	A0E25E  	LDY #$5EE2     ; Text pointer
C3/5EB1:	202603  	JSR $0326      ; Draw "MP Needed"
C3/5EB4:	7B      	TDC            ; ...
C3/5EB5:	A54B    	LDA $4B        ; Cursor slot
C3/5EB7:	85E5    	STA $E5        ; Set spell slot
C3/5EB9:	209256  	JSR $5692      ; Define source
C3/5EBC:	C220    	REP #$20       ; 16-bit A
C3/5EBE:	A9CF78  	LDA #$78CF     ; Tilemap ptr
C3/5EC1:	8F899E7E	STA $7E9E89    ; Set position
C3/5EC5:	E220    	SEP #$20       ; 8-bit A
C3/5EC7:	20BB57  	JSR $57BB      ; Spell
C3/5ECA:	20F28B  	JSR $8BF2      ; Load spell name
C3/5ECD:	20B987  	JSR $87B9      ; Draw spell name
C3/5ED0:	20BB57  	JSR $57BB      ; Spell
C3/5ED3:	20DC57  	JSR $57DC      ; Define MP cost
C3/5ED6:	206305  	JSR $0563      ; Turn into text
C3/5ED9:	A2537A  	LDX #$7A53     ; Text position
C3/5EDC:	203905  	JSR $0539      ; Draw 2 digits
C3/5EDF:	4CB987  	JMP $87B9      ; Redraw name...

Positioned text, "MP Needed"
C3/5EE2:	CD79 77C38963FF5D5F00

Initialize esper data menu
C3/5EEC:	A44F    	LDY $4F        ; Cursor position
C3/5EEE:	848E    	STY $8E        ; Set return loc
C3/5EF0:	A54A    	LDA $4A        ; Scroll position
C3/5EF2:	8590    	STA $90        ; Set return loc
C3/5EF4:	20AC61  	JSR $61AC      ; Load esper info
C3/5EF7:	20F45F  	JSR $5FF4      ; Draw esper info
C3/5EFA:	207C0F  	JSR $0F7C      ; Queue its upload
C3/5EFD:	20D313  	JSR $13D3      ; Upload it now
C3/5F00:	20680F  	JSR $0F68      ; Requeue esper list
C3/5F03:	C220    	REP #$20       ; 16-bit A
C3/5F05:	A90001  	LDA #$0100     ; BG1 H-Shift: 256
C3/5F08:	8F109A7E	STA $7E9A10    ; Hide esper list
C3/5F0C:	E220    	SEP #$20       ; 8-bit A
C3/5F0E:	A549    	LDA $49        ; Top BG1 write row
C3/5F10:	855F    	STA $5F        ; Save for return
C3/5F12:	A907    	LDA #$07       ; BG1 VRAM row: 7
C3/5F14:	8549    	STA $49        ; Save for V-Shift
C3/5F16:	20F354  	JSR $54F3      ; Load V-shift data
C3/5F19:	A9C0    	LDA #$C0       ; Scrollbar: Off
C3/5F1B:	1446    	TRB $46        ; Set anim index
C3/5F1D:	20D25F  	JSR $5FD2      ; Load navig data
C3/5F20:	4CDB5F  	JMP $5FDB      ; Relocate cursor

4D: Sustain esper data menu
C3/5F23:	20D85F  	JSR $5FD8      ; Handle D-Pad
C3/5F26:	20EB61  	JSR $61EB      ; Load description
C3/5F29:	A508    	LDA $08        ; No-autofire keys
C3/5F2B:	8980    	BIT #$80       ; Pushing A?
C3/5F2D:	F030    	BEQ $5F5F      ; Branch if not
C3/5F2F:	7B      	TDC            ; Clear A
C3/5F30:	A54B    	LDA $4B        ; On esper name?
C3/5F32:	D02B    	BNE $5F5F      ; Branch if not
C3/5F34:	A599    	LDA $99        ; Viewed esper
C3/5F36:	20CD5B  	JSR $5BCD      ; Choose palette
C3/5F39:	85E0    	STA $E0        ; Memorize esper
C3/5F3B:	A529    	LDA $29        ; Esper palette
C3/5F3D:	C928    	CMP #$28       ; Grayed out?
C3/5F3F:	D016    	BNE $5F57      ; Equip if not
C3/5F41:	202B0F  	JSR $0F2B      ; Play buzzer
C3/5F44:	A910    	LDA #$10       ; Reset/Stop desc
C3/5F46:	0445    	TSB $45        ; Set menu flag
C3/5F48:	20F35B  	JSR $5BF3      ; Draw who has it
C3/5F4B:	A02000  	LDY #$0020     ; Frames: 32
C3/5F4E:	8420    	STY $20        ; Set exit delay
C3/5F50:	A934    	LDA #$34       ; C3/29AD
C3/5F52:	8526    	STA $26        ; Next: Late exit
C3/5F54:	4C7C0F  	JMP $0F7C      ; Queue text upload

Fork: Equip esper
C3/5F57:	201D0F  	JSR $0F1D      ; Sound: Click
C3/5F5A:	209C29  	JSR $299C      ; Equip/draw esper
C3/5F5D:	8009    	BRA $5F68      ; Exit submenu

Fork: Handle B
C3/5F5F:	A509    	LDA $09        ; No-autofire keys
C3/5F61:	8980    	BIT #$80       ; Pushing B?
C3/5F63:	F06C    	BEQ $5FD1      ; Exit if not
C3/5F65:	20140F  	JSR $0F14      ; Sound: Cursor
C3/5F68:	A910    	LDA #$10       ; Reset/Stop desc
C3/5F6A:	0445    	TSB $45        ; Set menu flag
C3/5F6C:	A55F    	LDA $5F        ; Top BG1 write row
C3/5F6E:	8549    	STA $49        ; Restore it
C3/5F70:	20C65A  	JSR $5AC6      ; Draw esper list
C3/5F73:	20A409  	JSR $09A4      ; Create scrollbar
C3/5F76:	C220    	REP #$20       ; 16-bit A
C3/5F78:	A93313  	LDA #$1333     ; V-Speed: 19.2 px
C3/5F7B:	9F4A357E	STA $7E354A,X  ; Set scrollbar's
C3/5F7F:	A96000  	LDA #$0060     ; Y: 96
C3/5F82:	9FCA347E	STA $7E34CA,X  ; Set scrollbar's
C3/5F86:	E220    	SEP #$20       ; 8-bit A
C3/5F88:	20CD52  	JSR $52CD      ; Load navig data
C3/5F8B:	A58E    	LDA $8E        ; Old cursor column
C3/5F8D:	854D    	STA $4D        ; Set onscreen col
C3/5F8F:	A48E    	LDY $8E        ; Old cursor loc
C3/5F91:	844F    	STY $4F        ; Set as current
C3/5F93:	A590    	LDA $90        ; Old scroll pos
C3/5F95:	854A    	STA $4A        ; Set as current
C3/5F97:	A54A    	LDA $4A        ; ...
C3/5F99:	85E0    	STA $E0        ; Memorize it...
C3/5F9B:	A550    	LDA $50        ; List row
C3/5F9D:	38      	SEC            ; Prepare SBC
C3/5F9E:	E5E0    	SBC $E0        ; Deduct scroll pos
C3/5FA0:	854E    	STA $4E        ; Set cursor row
C3/5FA2:	20D652  	JSR $52D6      ; Relocate cursor
C3/5FA5:	A905    	LDA #$05       ; Top row: Carb.'s
C3/5FA7:	855C    	STA $5C        ; Set scroll limit
C3/5FA9:	A909    	LDA #$09       ; Onscreen rows: 9
C3/5FAB:	855A    	STA $5A        ; Set rows per page
C3/5FAD:	A902    	LDA #$02       ; Onscreen cols: 2
C3/5FAF:	855B    	STA $5B        ; Set cols per page
C3/5FB1:	20680F  	JSR $0F68      ; Queue list upload
C3/5FB4:	20D313  	JSR $13D3      ; Refresh esper list
C3/5FB7:	C220    	REP #$20       ; 16-bit A
C3/5FB9:	7B      	TDC            ; BG1 H-Shift: 0
C3/5FBA:	8F109A7E	STA $7E9A10    ; Unhide esper list
C3/5FBE:	E220    	SEP #$20       ; 8-bit A
C3/5FC0:	A00001  	LDY #$0100     ; X: 256
C3/5FC3:	8439    	STY $39        ; Set BG2 X-Pos
C3/5FC5:	843D    	STY $3D        ; Set BG3 X-Pos
C3/5FC7:	20F354  	JSR $54F3      ; Load V-shift data
C3/5FCA:	207C0F  	JSR $0F7C      ; Queue stats upload
C3/5FCD:	A91E    	LDA #$1E       ; C3/2946
C3/5FCF:	8526    	STA $26        ; Next: Esper choice
C3/5FD1:	60      	RTS

Load navigation data for esper data menu
C3/5FD2:	A0E15F  	LDY #$5FE1     ; C3/5FE1
C3/5FD5:	4C8106  	JMP $0681      ; Load navig data

Handle D-Pad for esper data menu
C3/5FD8:	20B007  	JSR $07B0      ; Handle D-Pad
C3/5FDB:	A0E65F  	LDY #$5FE6     ; C3/5FE6
C3/5FDE:	4CC306  	JMP $06C3      ; Relocate cursor

Navigation data for esper data menu
C3/5FE1:	80      	; Wraps vertically
C3/5FE2:	00      	; Initial column
C3/5FE3:	00      	; Initial row
C3/5FE4:	01      	; 1 column
C3/5FE5:	07      	; 7 rows

Cursor positions for esper data menu
C3/5FE6:	1070    	; Esper
C3/5FE8:	187C    	; Spell A
C3/5FEA:	1888    	; Spell B
C3/5FEC:	1894    	; Spell C
C3/5FEE:	18A0    	; Spell D
C3/5FF0:	18AC    	; Spell E
C3/5FF2:	18B8    	; Bonus

Draw selected esper's info
C3/5FF4:	A920    	LDA #$20       ; Palette 0
C3/5FF6:	8529    	STA $29        ; Color: User's
C3/5FF8:	A04C63  	LDY #$634C     ; Text pointer
C3/5FFB:	202603  	JSR $0326      ; Do "Learn.Rate"
C3/5FFE:	A04363  	LDY #$6343     ; Text pointer
C3/6001:	202603  	JSR $0326      ; Draw "Skill"
C3/6004:	A599    	LDA $99        ; Viewed esper
C3/6006:	20CD5B  	JSR $5BCD      ; Choose palette
C3/6009:	A05144  	LDY #$4451     ; Tilemap ptr
C3/600C:	20E135  	JSR $35E1      ; Set pos, WRAM
C3/600F:	7B      	TDC            ; ...
C3/6010:	A599    	LDA $99        ; Viewed esper
C3/6012:	0A      	ASL A          ; x2
C3/6013:	0A      	ASL A          ; x4
C3/6014:	0A      	ASL A          ; x8
C3/6015:	AA      	TAX            ; Index it
C3/6016:	A00800  	LDY #$0008     ; Letters: 8
C3/6019:	BF0E75ED	LDA $ED750E,X  ; Esper name char
C3/601D:	8D8021  	STA $2180      ; Add to string
C3/6020:	E8      	INX            ; Point to next
C3/6021:	88      	DEY            ; One less left
C3/6022:	D0F5    	BNE $6019      ; Loop till last
C3/6024:	9C8021  	STZ $2180      ; End string
C3/6027:	20B987  	JSR $87B9      ; Draw esper name

Fork: Draw spell data
C3/602A:	7B      	TDC            ; Clear A
C3/602B:	A54B    	LDA $4B        ; Selected slot
C3/602D:	AA      	TAX            ; Index it
C3/602E:	BF899D7E	LDA $7E9D89,X  ; Esper in slot
C3/6032:	8D0242  	STA $4202      ; Set multiplicand
C3/6035:	A90B    	LDA #$0B       ; Esper data size
C3/6037:	8D0342  	STA $4203      ; Set multiplier
C3/603A:	A920    	LDA #$20       ; Palette 0
C3/603C:	8529    	STA $29        ; Color: User's
C3/603E:	A01200  	LDY #$0012     ; Y: 18
C3/6041:	84F5    	STY $F5        ; Memorize it
C3/6043:	C220    	REP #$20       ; 16-bit A
C3/6045:	AD1642  	LDA $4216      ; Product
C3/6048:	AA      	TAX            ; Index it
C3/6049:	E220    	SEP #$20       ; 8-bit A
C3/604B:	BF67F5E6	LDA $E6F567,X  ; Learning rate
C3/604F:	85E0    	STA $E0        ; Memorize it
C3/6051:	E8      	INX            ; Index +1
C3/6052:	BF67F5E6	LDA $E6F567,X  ; Spell
C3/6056:	85E1    	STA $E1        ; Memorize it
C3/6058:	E8      	INX            ; Index +1
C3/6059:	DA      	PHX            ; Save index
C3/605A:	A20500  	LDX #$0005     ; X: 5
C3/605D:	A4F5    	LDY $F5        ; Y position
C3/605F:	A5E1    	LDA $E1        ; Spell
C3/6061:	48      	PHA            ; Preserve it
C3/6062:	203661  	JSR $6136      ; Draw spell, rate
C3/6065:	A21800  	LDX #$0018     ; X: 24
C3/6068:	A4F5    	LDY $F5        ; Y position
C3/606A:	68      	PLA            ; Spell
C3/606B:	85E1    	STA $E1        ; Restore it
C3/606D:	20D960  	JSR $60D9      ; Draw percentage
C3/6070:	FA      	PLX            ; Spell data index
C3/6071:	C220    	REP #$20       ; 16-bit A
C3/6073:	E6F5    	INC $F5        ; Y position +1
C3/6075:	E6F5    	INC $F5        ; Y position +1
C3/6077:	A5F5    	LDA $F5        ; Y position
C3/6079:	C91C00  	CMP #$001C     ; Done 5 spells?
C3/607C:	D0CB    	BNE $6049      ; Loop if not

Fork: Draw esper bonus message
C3/607E:	E220    	SEP #$20       ; 8-bit A
C3/6080:	BF67F5E6	LDA $E6F567,X  ; Esper bonus
C3/6084:	C9FF    	CMP #$FF       ; None?
C3/6086:	F034    	BEQ $60BC      ; Blank if so
C3/6088:	8D0242  	STA $4202      ; Set multiplicand
C3/608B:	A908    	LDA #$08       ; Text length
C3/608D:	8D0342  	STA $4203      ; Set multiplier
C3/6090:	A05347  	LDY #$4753     ; Tilemap ptr
C3/6093:	20E135  	JSR $35E1      ; Set pos, WRAM
C3/6096:	A600    	LDX $00        ; Char index: 0
C3/6098:	BF5763C3	LDA $C36357,X  ; "At..." char
C3/609C:	8D8021  	STA $2180      ; Add to string
C3/609F:	E8      	INX            ; Point to next
C3/60A0:	E00B00  	CPX #$000B     ; Done all 11?
C3/60A3:	D0F3    	BNE $6098      ; Loop if not
C3/60A5:	AE1642  	LDX $4216      ; Index product
C3/60A8:	A00800  	LDY #$0008     ; Letters: 8
C3/60AB:	BFAEFECF	LDA $CFFEAE,X  ; Bonus char
C3/60AF:	8D8021  	STA $2180      ; Add to string
C3/60B2:	E8      	INX            ; Point to next
C3/60B3:	88      	DEY            ; One less left
C3/60B4:	D0F5    	BNE $60AB      ; Loop till last
C3/60B6:	9C8021  	STZ $2180      ; End string
C3/60B9:	4CB987  	JMP $87B9      ; Draw string

Fork: Blank esper bonus message
C3/60BC:	A05347  	LDY #$4753     ; Tilemap ptr
C3/60BF:	20E135  	JSR $35E1      ; Set pos, WRAM
C3/60C2:	A01300  	LDY #$0013     ; Letters: 19
C3/60C5:	A28B9E  	LDX #$9E8B     ; 7E/9E8B
C3/60C8:	8E8121  	STX $2181      ; Set WRAM LBs
C3/60CB:	A9FF    	LDA #$FF       ; Space char
C3/60CD:	8D8021  	STA $2180      ; Add to string
C3/60D0:	88      	DEY            ; One less left
C3/60D1:	D0FA    	BNE $60CD      ; Loop till last
C3/60D3:	9C8021  	STZ $2180      ; End string
C3/60D6:	4CB987  	JMP $87B9      ; Draw 19 spaces

Draw spell's mastery percentage for esper data menu
C3/60D9:	209561  	JSR $6195      ; Compute map ptr
C3/60DC:	C220    	REP #$20       ; 16-bit A
C3/60DE:	8A      	TXA            ; ...
C3/60DF:	8F899E7E	STA $7E9E89    ; Set position
C3/60E3:	E220    	SEP #$20       ; 8-bit A
C3/60E5:	A28B9E  	LDX #$9E8B     ; 7E/9E8B
C3/60E8:	8E8121  	STX $2181      ; Set WRAM LBs
C3/60EB:	A5E1    	LDA $E1        ; Spell
C3/60ED:	C9FF    	CMP #$FF       ; None?
C3/60EF:	F035    	BEQ $6126      ; Blank if so
C3/60F1:	207157  	JSR $5771      ; Spell mastery
C3/60F4:	C9FF    	CMP #$FF       ; Fully learned?
C3/60F6:	F01F    	BEQ $6117      ; Branch if so
C3/60F8:	48      	PHA            ; Save mastery
C3/60F9:	A9FF    	LDA #$FF       ; Space char
C3/60FB:	8D8021  	STA $2180      ; Add to string
C3/60FE:	68      	PLA            ; Spell mastery
C3/60FF:	206305  	JSR $0563      ; Turn into text
C3/6102:	A5F8    	LDA $F8        ; Tens digit
C3/6104:	8D8021  	STA $2180      ; Add to string
C3/6107:	A5F9    	LDA $F9        ; Ones digit
C3/6109:	8D8021  	STA $2180      ; Add to string
C3/610C:	A9CD    	LDA #$CD       ; Char: "%"
C3/610E:	8D8021  	STA $2180      ; Add to string
C3/6111:	9C8021  	STZ $2180      ; End string
C3/6114:	4CB987  	JMP $87B9      ; Draw string

Fork: Draw "100%"
C3/6117:	A954    	LDA #$54       ; Char: "1"
C3/6119:	8D8021  	STA $2180      ; Add to string
C3/611C:	A953    	LDA #$53       ; Char: "0"
C3/611E:	8D8021  	STA $2180      ; Add to string
C3/6121:	8D8021  	STA $2180      ; Add to string
C3/6124:	80E6    	BRA $610C      ; Add "%"; draw

Fork: Blank percentage
C3/6126:	A9FF    	LDA #$FF       ; Space char
C3/6128:	8D8021  	STA $2180      ; Add to string
C3/612B:	8D8021  	STA $2180      ; Add to string
C3/612E:	8D8021  	STA $2180      ; Add to string
C3/6131:	8D8021  	STA $2180      ; Add to string
C3/6134:	80DB    	BRA $6111      ; Draw 4 spaces

Draw spell's name and learning rate
C3/6136:	209561  	JSR $6195      ; Compute map ptr
C3/6139:	C220    	REP #$20       ; 16-bit A
C3/613B:	8A      	TXA            ; ...
C3/613C:	8F899E7E	STA $7E9E89    ; Set position
C3/6140:	E220    	SEP #$20       ; 8-bit A
C3/6142:	209256  	JSR $5692      ; Define source
C3/6145:	A5E1    	LDA $E1        ; Spell
C3/6147:	C9FF    	CMP #$FF       ; None?
C3/6149:	F033    	BEQ $617E      ; Blank if so
C3/614B:	20F28B  	JSR $8BF2      ; Load name
C3/614E:	A2909E  	LDX #$9E90     ; 7E/9E90
C3/6151:	8E8121  	STX $2181      ; Set WRAM LBs
C3/6154:	A9CF    	LDA #$CF       ; Char: ":"
C3/6156:	8D8021  	STA $2180      ; Add to string
C3/6159:	A9FF    	LDA #$FF       ; Space char
C3/615B:	8D8021  	STA $2180      ; Add to string
C3/615E:	8D8021  	STA $2180      ; Add to string
C3/6161:	8D8021  	STA $2180      ; Add to string
C3/6164:	A9D7    	LDA #$D7       ; Char: ""
C3/6166:	8D8021  	STA $2180      ; Add to string
C3/6169:	A5E0    	LDA $E0        ; Learning rate
C3/616B:	206305  	JSR $0563      ; Turn into text
C3/616E:	A5F8    	LDA $F8        ; Tens digit
C3/6170:	8D8021  	STA $2180      ; Add to string
C3/6173:	A5F9    	LDA $F9        ; Ones digit
C3/6175:	8D8021  	STA $2180      ; Add to string
C3/6178:	9C8021  	STZ $2180      ; End string
C3/617B:	4CB987  	JMP $87B9      ; Draw string

Fork: No spell
C3/617E:	A00D00  	LDY #$000D     ; Spaces: 13
C3/6181:	A28B9E  	LDX #$9E8B     ; 7E/9E8B
C3/6184:	8E8121  	STX $2181      ; Set WRAM LBs
C3/6187:	A9FF    	LDA #$FF       ; Space char
C3/6189:	8D8021  	STA $2180      ; Add to string
C3/618C:	88      	DEY            ; One less left
C3/618D:	D0FA    	BNE $6189      ; Loop till last
C3/618F:	9C8021  	STZ $2180      ; End string
C3/6192:	4CB987  	JMP $87B9      ; Draw 13 spaces

Compute position into BG1 tilemap B
C3/6195:	C220    	REP #$20       ; 16-bit A
C3/6197:	98      	TYA            ; Y position
C3/6198:	0A      	ASL A          ; x2
C3/6199:	0A      	ASL A          ; x4
C3/619A:	0A      	ASL A          ; x8
C3/619B:	0A      	ASL A          ; x16
C3/619C:	0A      	ASL A          ; x32
C3/619D:	0A      	ASL A          ; x64
C3/619E:	85E7    	STA $E7        ; Memorize it
C3/61A0:	8A      	TXA            ; X position
C3/61A1:	0A      	ASL A          ; Double it
C3/61A2:	18      	CLC            ; ...
C3/61A3:	65E7    	ADC $E7        ; Add Y x64
C3/61A5:	694940  	ADC #$4049     ; Add base adr
C3/61A8:	AA      	TAX            ; Put in X...
C3/61A9:	E220    	SEP #$20       ; 8-bit A...
C3/61AB:	60      	RTS

Load esper's info for display
C3/61AC:	7B      	TDC            ; Clear A...
C3/61AD:	A599    	LDA $99        ; Chosen esper
C3/61AF:	8F8DAB7E	STA $7EAB8D    ; Add to list
C3/61B3:	A54B    	LDA $4B        ; Chosen slot...
C3/61B5:	AA      	TAX            ; Index it...
C3/61B6:	BF899D7E	LDA $7E9D89,X  ; Chosen esper...
C3/61BA:	8D0242  	STA $4202      ; Set multiplicand
C3/61BD:	A90B    	LDA #$0B       ; Esper data size
C3/61BF:	8D0342  	STA $4203      ; Set multiplier
C3/61C2:	8B      	PHB            ; Save DB
C3/61C3:	A97E    	LDA #$7E       ; Bank: 7E
C3/61C5:	48      	PHA            ; Put on stack
C3/61C6:	AB      	PLB            ; Set DB to 7E
C3/61C7:	A00100  	LDY #$0001     ; Spell slot: 1
C3/61CA:	C220    	REP #$20       ; 16-bit A
C3/61CC:	AF164200	LDA $004216    ; Product
C3/61D0:	AA      	TAX            ; Index it
C3/61D1:	E220    	SEP #$20       ; 8-bit A
C3/61D3:	E8      	INX            ; Skip Learn.Rate
C3/61D4:	BF67F5E6	LDA $E6F567,X  ; Spell taught
C3/61D8:	998DAB  	STA $AB8D,Y    ; Add to list
C3/61DB:	E8      	INX            ; ROM index +1
C3/61DC:	C8      	INY            ; RAM index +1
C3/61DD:	C00600  	CPY #$0006     ; Done 5 spells?
C3/61E0:	D0F1    	BNE $61D3      ; Loop if not
C3/61E2:	BF67F5E6	LDA $E6F567,X  ; Level up bonus
C3/61E6:	8D93AB  	STA $AB93      ; Add to list
C3/61E9:	AB      	PLB            ; Restore DB
C3/61EA:	60      	RTS

Load description for esper data menu
C3/61EB:	A2C99E  	LDX #$9EC9     ; 7E/9EC9
C3/61EE:	8E8121  	STX $2181      ; Set WRAM LBs
C3/61F1:	7B      	TDC            ; Clear A
C3/61F2:	A54B    	LDA $4B        ; Cursor row
C3/61F4:	AA      	TAX            ; Index it
C3/61F5:	BF8DAB7E	LDA $7EAB8D,X  ; Slot content
C3/61F9:	C9FF    	CMP #$FF       ; Empty slot?
C3/61FB:	F02C    	BEQ $6229      ; Blank if so
C3/61FD:	48      	PHA            ; Memorize it
C3/61FE:	203362  	JSR $6233      ; Load pointers
C3/6201:	68      	PLA            ; Slot content
C3/6202:	C220    	REP #$20       ; 16-bit A
C3/6204:	0A      	ASL A          ; Double it
C3/6205:	A8      	TAY            ; Index it
C3/6206:	B7E7    	LDA [$E7],Y    ; Relative ptr
C3/6208:	A8      	TAY            ; Index it
C3/6209:	E220    	SEP #$20       ; 8-bit A
C3/620B:	B7EB    	LDA [$EB],Y    ; Text character
C3/620D:	F006    	BEQ $6215      ; Branch if 00h
C3/620F:	8D8021  	STA $2180      ; Add to string
C3/6212:	C8      	INY            ; Index +1
C3/6213:	80F6    	BRA $620B      ; Do next char

Fork: Check if terminator
C3/6215:	88      	DEY            ; Index -1
C3/6216:	B7EB    	LDA [$EB],Y    ; Previous char
C3/6218:	C8      	INY            ; Index +1
C3/6219:	C91C    	CMP #$1C       ; Command 1C?
C3/621B:	F010    	BEQ $622D      ; Branch if so
C3/621D:	C91D    	CMP #$1D       ; Command 1D?
C3/621F:	F00C    	BEQ $622D      ; Branch if so
C3/6221:	C91E    	CMP #$1E       ; Command 1E?
C3/6223:	F008    	BEQ $622D      ; Branch if so
C3/6225:	C91F    	CMP #$1F       ; Command 1F?
C3/6227:	F004    	BEQ $622D      ; Branch if so
C3/6229:	9C8021  	STZ $2180      ; End string
C3/622C:	60      	RTS

Fork: Resume past control code
C3/622D:	9C8021  	STZ $2180      ; Add 00h to msg
C3/6230:	C8      	INY            ; Index +1
C3/6231:	80D8    	BRA $620B      ; Do next char

Load description pointers for esper data menu
C3/6233:	A54B    	LDA $4B        ; On esper name?
C3/6235:	F02A    	BEQ $6261      ; Branch if so
C3/6237:	C906    	CMP #$06       ; On bonus?
C3/6239:	F013    	BEQ $624E      ; Branch if so

Fork: Magic effect
C3/623B:	A290F6  	LDX #$F690     ; E6/F690
C3/623E:	86E7    	STX $E7        ; Set ptr loc LBs
C3/6240:	A2A0C9  	LDX #$C9A0     ; D8/C9A0
C3/6243:	86EB    	STX $EB        ; Set text loc LBs
C3/6245:	A9E6    	LDA #$E6       ; Bank: E6
C3/6247:	85E9    	STA $E9        ; Set ptr loc HB
C3/6249:	A9D8    	LDA #$D8       ; Bank: D8
C3/624B:	85ED    	STA $ED        ; Set text loc HB
C3/624D:	60      	RTS

Fork: Level up bonus
C3/624E:	A26EFF  	LDX #$FF6E     ; CF/FFD0
C3/6251:	86E7    	STX $E7        ; Set ptr loc LBs
C3/6253:	A200F6  	LDX #$F600     ; D0/F600
C3/6256:	86EB    	STX $EB        ; Set text loc LBs
C3/6258:	A9CF    	LDA #$CF       ; Bank: CF
C3/625A:	85E9    	STA $E9        ; Set ptr loc HB
C3/625C:	A9D0    	LDA #$D0       ; Bank: D0
C3/625E:	85ED    	STA $ED        ; Set text loc HB
C3/6260:	60      	RTS

Fork: Esper effect
C3/6261:	A240FE  	LDX #$FE40     ; CF/FE40
C3/6264:	86E7    	STX $E7        ; Set ptr loc LBs
C3/6266:	A2A0CD  	LDX #$CDA0     ; D8/CDA0
C3/6269:	86EB    	STX $EB        ; Set text loc LBs
C3/626B:	A9CF    	LDA #$CF       ; Bank: CF
C3/626D:	85E9    	STA $E9        ; Set ptr loc HB
C3/626F:	A9D8    	LDA #$D8       ; Bank: D8
C3/6271:	85ED    	STA $ED        ; Set text loc HB
C3/6273:	60      	RTS

Tile attributes for Blitz inputs
C3/6274:	0000    	; Terminator
C3/6276:	0000    	; Bogus; for A
C3/6278:	0000    	; Bogus; for B
C3/627A:	3720    	; X
C3/627C:	3820    	; Y
C3/627E:	2B20    	; L
C3/6280:	3120    	; R
C3/6282:	D620    	; Down-left
C3/6284:	D4A0    	; Down
C3/6286:	D660    	; Down-right
C3/6288:	D520    	; Right
C3/628A:	D6C0    	; Up-right
C3/628C:	D420    	; Up
C3/628E:	D6A0    	; Up-left
C3/6290:	D560    	; Left

Text pointers for Skills menu (unused)
C3/6292:	A062    	               ; Espers
C3/6294:	A862    	               ; Magic
C3/6296:	AE62    	               ; SwdTech
C3/6298:	B762    	               ; Blitz
C3/629A:	C062    	               ; Lore
C3/629C:	C962    	               ; Rage
C3/629E:	D062    	               ; Dance

Positioned text for Skills menu
C3/62A0:	CD78 31B937C18900              ; Espers
C3/62A8:	4D79 9D698900                  ; Magic
C3/62AE:	4D7A 63BD758371B900            ; SwdTech
C3/62B7:	CD7A 63BD7583B73500            ; Blitz
C3/62C0:	4D7B 91298F7FB73500            ; Lore
C3/62C9:	CD7B 8B21ADAB00                ; Rage
C3/62D0:	4D7C 9147A900                  ; Dance

Text pointers for Skills menu
C3/62D6:	2463    	               ; LV
C3/62D8:	2963    	               ; HP
C3/62DA:	2E63    	               ; MP

Positioned spaces for blanking diacritics in skill submenu title
C3/62DC:	CD80 FFFFFFFFFFFF00

Positioned text for Skills submenus
C3/62E5:	0D81 2C2FC7FFFFFF00            ; "MP    "
C3/62EE:	CD80 91298F7FB73500            ; Lore
C3/62F7:	CD80 8B21ADABFFFF00            ; Rage
C3/6300:	CD80 9147A9FFFFFF00            ; Dance
C3/6309:	CD80 31B937C189FF00            ; Espers
C3/6312:	CD80 63BD7583B73500            ; Blitz
C3/631B:	CD80 63BD758371B900            ; SwdTech
C3/6324:	2D42 2B3500                    ; LV
C3/6329:	AD42 272F00                    ; HP
C3/632E:	2D43 2C2F00                    ; MP
C3/6333:	BB42 CE00                      ; /
C3/6337:	3B43 CE00                      ; /
C3/633B:	2BA5BD858D9D7900               ; has it!
C3/6343:	7544 37C16FADB94700            ; Skill
C3/634C:	6344 91298FAB784BC54600        ; Learn.Rate
C3/6357:	AC26AA8ABC4D9B876D95FF         ; At level up...

Draw and upload Status menu, create portrait
C3/6362:	207463  	JSR $6374      ; Draw main windows
C3/6365:	201E64  	JSR $641E      ; Draw Gogo's panel
C3/6368:	209963  	JSR $6399      ; Draw blue text
C3/636B:	20E365  	JSR $65E3      ; Draw actor info
C3/636E:	20D463  	JSR $63D4      ; Upload tilemaps
C3/6371:	4C0268  	JMP $6802      ; Create portrait

Draw windows for non-shifted Status menu
C3/6374:	20A971  	JSR $71A9      ; Clear BG1 map A
C3/6377:	20B771  	JSR $71B7      ; Clear BG1 map D
C3/637A:	20D071  	JSR $71D0      ; Clear BG3 map A
C3/637D:	20D571  	JSR $71D5      ; Clear BG3 map B
C3/6380:	20DA71  	JSR $71DA      ; Clear BG3 map C
C3/6383:	20DF71  	JSR $71DF      ; Clear BG3 map D
C3/6386:	A0D765  	LDY #$65D7     ; C3/65D7
C3/6389:	20C403  	JSR $03C4      ; Draw main window
C3/638C:	A0CF65  	LDY #$65CF     ; C3/65CF
C3/638F:	20C403  	JSR $03C4      ; Draw title window
C3/6392:	A0D365  	LDY #$65D3     ; C3/65D3
C3/6395:	20C403  	JSR $03C4      ; Draw cmd window
C3/6398:	60      	RTS

Draw blue text and non-blue symbols in Status menu
C3/6399:	209E63  	JSR $639E      ; LV, HP, MP, %, /
C3/639C:	801B    	BRA $63B9      ; Rest of blue text

Draw LV, HP, MP, and non-blue symbols in Status menu
C3/639E:	A920    	LDA #$20       ; Palette 0
C3/63A0:	8529    	STA $29        ; Color: User's
C3/63A2:	A29E6A  	LDX #$6A9E     ; Text ptrs loc
C3/63A5:	A00800  	LDY #$0008     ; Strings: 4
C3/63A8:	202C71  	JSR $712C      ; Draw 2x / and %
C3/63AB:	A924    	LDA #$24       ; Palette 1
C3/63AD:	8529    	STA $29        ; Color: Blue
C3/63AF:	A2986A  	LDX #$6A98     ; Text ptrs loc
C3/63B2:	A00600  	LDY #$0006     ; Strings: 3
C3/63B5:	202C71  	JSR $712C      ; Draw "LV/HP/MP"
C3/63B8:	60      	RTS

Draw all blue text in Status menu except LV, HP, and MP
C3/63B9:	A92C    	LDA #$2C       ; Palette 3
C3/63BB:	8529    	STA $29        ; Color: Blue
C3/63BD:	A2806A  	LDX #$6A80     ; Text ptrs loc
C3/63C0:	A01800  	LDY #$0018     ; Strings: 12
C3/63C3:	202C71  	JSR $712C      ; Draw Vigor, etc.
C3/63C6:	A92C    	LDA #$2C       ; ...
C3/63C8:	8529    	STA $29        ; ...
C3/63CA:	A2A66A  	LDX #$6AA6     ; Text ptrs loc
C3/63CD:	A00C00  	LDY #$000C     ; Strings: 6
C3/63D0:	204E71  	JSR $714E      ; Draw Speed, etc.
C3/63D3:	60      	RTS

Upload tilemaps for Status menu
C3/63D4:	20BD0E  	JSR $0EBD      ; Upload BG2 A+B
C3/63D7:	20930E  	JSR $0E93      ; Upload BG1 A+B
C3/63DA:	20D90E  	JSR $0ED9      ; Upload BG3 A+B
C3/63DD:	4CE70E  	JMP $0EE7      ; Upload BG3 C+D

Handle member switching in Status menu
C3/63E0:	209E63  	JSR $639E      ; Draw "MP" + "/"
C3/63E3:	20E365  	JSR $65E3      ; Draw actor info
C3/63E6:	20F867  	JSR $67F8      ; Create portrait
C3/63E9:	A00000  	LDY #$0000     ; $0000 = BG1a
C3/63EC:	8414    	STY $14        ; Set VRAM ptr A
C3/63EE:	A04938  	LDY #$3849     ; 7E/3849
C3/63F1:	8416    	STY $16        ; Set src-a LBs
C3/63F3:	A00008  	LDY #$0800     ; Bytes: 2048
C3/63F6:	8412    	STY $12        ; Set src-a size
C3/63F8:	A00040  	LDY #$4000     ; $4000 = BG3a
C3/63FB:	841B    	STY $1B        ; Set VRAM ptr B
C3/63FD:	A04978  	LDY #$7849     ; 7E/7849
C3/6400:	841D    	STY $1D        ; Set src-b LBs
C3/6402:	A00008  	LDY #$0800     ; Bytes: 2048
C3/6405:	8419    	STY $19        ; Set src-b size
C3/6407:	201B12  	JSR $121B      ; Swap portraits
C3/640A:	20D313  	JSR $13D3      ; Trigger NMI
C3/640D:	A400    	LDY $00        ; Null value
C3/640F:	841B    	STY $1B        ; Dequeue BG3a
C3/6411:	A00048  	LDY #$4800     ; $4800 = BG3c
C3/6414:	8414    	STY $14        ; Set VRAM ptr
C3/6416:	A04988  	LDY #$8849     ; 7E/8849
C3/6419:	8416    	STY $16        ; Set src LBs
C3/641B:	4CD313  	JMP $13D3      ; Upload BG3c

Draw Gogo's list of available commands, prepare portrait hiding
C3/641E:	A2099E  	LDX #$9E09     ; 7E/9E09
C3/6421:	8E8121  	STX $2181      ; Set WRAM LBs
C3/6424:	7B      	TDC            ; Clear A

Fork: Compile everyone's commands, exclude guests and dead Shadow
C3/6425:	AA      	TAX            ; 1st: Terra
C3/6426:	DA      	PHX            ; Save char slot
C3/6427:	C220    	REP #$20       ; 16-bit A
C3/6429:	8A      	TXA            ; Actor slot
C3/642A:	0A      	ASL A          ; Double it
C3/642B:	AA      	TAX            ; Index it
C3/642C:	ADDC1E  	LDA $1EDC      ; Eligible actors
C3/642F:	3F56A4C3	AND $C3A456,X  ; Has our actor?
C3/6433:	F023    	BEQ $6458      ; Skip if not
C3/6435:	C220    	REP #$20       ; ...
C3/6437:	BFDB70C3	LDA $C370DB,X  ; Actor's address
C3/643B:	AA      	TAX            ; Index it
C3/643C:	E220    	SEP #$20       ; 8-bit A
C3/643E:	BD1600  	LDA $0016,X    ; Command 1
C3/6441:	8D8021  	STA $2180      ; Add to list
C3/6444:	BD1700  	LDA $0017,X    ; Command 2
C3/6447:	8D8021  	STA $2180      ; Add to list
C3/644A:	BD1800  	LDA $0018,X    ; Command 3
C3/644D:	8D8021  	STA $2180      ; Add to list
C3/6450:	BD1900  	LDA $0019,X    ; Command 4
C3/6453:	8D8021  	STA $2180      ; Add to list
C3/6456:	8010    	BRA $6468      ; Do next actor
C3/6458:	E220    	SEP #$20       ; 8-bit A
C3/645A:	A9FF    	LDA #$FF       ; Command: None
C3/645C:	8D8021  	STA $2180      ; Set command 1
C3/645F:	8D8021  	STA $2180      ; Set command 2
C3/6462:	8D8021  	STA $2180      ; Set command 3
C3/6465:	8D8021  	STA $2180      ; Set command 4
C3/6468:	FA      	PLX            ; Actor slot
C3/6469:	E8      	INX            ; Actor slot +1
C3/646A:	E01000  	CPX #$0010     ; Done 16 actors?
C3/646D:	D0B7    	BNE $6426      ; Loop if not

Fork: Delete duplicates
C3/646F:	7B      	TDC            ; Clear A
C3/6470:	AA      	TAX            ; Cmd slot: 1
C3/6471:	DA      	PHX            ; Save cmd slot
C3/6472:	BF099E7E	LDA $7E9E09,X  ; Available cmd
C3/6476:	DF0A9E7E	CMP $7E9E0A,X  ; Duplicate?
C3/647A:	D008    	BNE $6484      ; Branch if not
C3/647C:	48      	PHA            ; Save command
C3/647D:	A9FF    	LDA #$FF       ; Command: None
C3/647F:	9F0A9E7E	STA $7E9E0A,X  ; Clear duplicate
C3/6483:	68      	PLA            ; Battle command
C3/6484:	E8      	INX            ; Cmd slot +1
C3/6485:	E04000  	CPX #$0040     ; Done 16 x 4?
C3/6488:	D0EC    	BNE $6476      ; Loop if not
C3/648A:	FA      	PLX            ; Base cmd slot
C3/648B:	E8      	INX            ; Cmd slot +1
C3/648C:	E04000  	CPX #$0040     ; Done 16 x 4?
C3/648F:	D0E0    	BNE $6471      ; Loop if not

Fork: Build final command list
C3/6491:	A28A9D  	LDX #$9D8A     ; 7E/9D8A
C3/6494:	8E8121  	STX $2181      ; Set WRAM LBs
C3/6497:	A9FF    	LDA #$FF       ; Cmd: Empty
C3/6499:	8D8021  	STA $2180      ; Add to list
C3/649C:	7B      	TDC            ; Clear A
C3/649D:	AA      	TAX            ; Cmd slot: 1
C3/649E:	A8      	TAY            ; Cmd count: 0
C3/649F:	7B      	TDC            ; ...
C3/64A0:	DA      	PHX            ; Save cmd slot
C3/64A1:	BF099E7E	LDA $7E9E09,X  ; Available cmd
C3/64A5:	3016    	BMI $64BD      ; Skip if none
C3/64A7:	C912    	CMP #$12       ; Mimic?
C3/64A9:	F012    	BEQ $64BD      ; Skip if so
C3/64AB:	85E0    	STA $E0        ; Memorize it
C3/64AD:	0A      	ASL A          ; Double it
C3/64AE:	AA      	TAX            ; Index it
C3/64AF:	BF00FECF	LDA $CFFE00,X  ; Properties
C3/64B3:	2901    	AND #$01       ; Gogo can use?
C3/64B5:	F006    	BEQ $64BD      ; Skip if not
C3/64B7:	A5E0    	LDA $E0        ; Command
C3/64B9:	8D8021  	STA $2180      ; Add to list
C3/64BC:	C8      	INY            ; Cmd count +1
C3/64BD:	FA      	PLX            ; Cmd slot
C3/64BE:	E8      	INX            ; Cmd slot +1
C3/64BF:	E04000  	CPX #$0040     ; Done 16 x 4?
C3/64C2:	D0DB    	BNE $649F      ; Loop if not
C3/64C4:	C8      	INY            ; Cmd count +1
C3/64C5:	98      	TYA            ; Put it in A
C3/64C6:	8F899D7E	STA $7E9D89    ; Set list size

Fork: Load window layout for command list
C3/64CA:	A28DAA  	LDX #$AA8D     ; 7E/AA8D
C3/64CD:	8E8121  	STX $2181      ; Set WRAM LBs
C3/64D0:	7B      	TDC            ; Clear A
C3/64D1:	AA      	TAX            ; Index: 0
C3/64D2:	BFDB65C3	LDA $C365DB,X  ; Window data
C3/64D6:	8D8021  	STA $2180      ; Save in WRAM
C3/64D9:	E8      	INX            ; Index +1
C3/64DA:	E00800  	CPX #$0008     ; End of table?
C3/64DD:	D0F3    	BNE $64D2      ; Loop if not

Fork: Draw both segments of command window
C3/64DF:	98      	TYA            ; Command count
C3/64E0:	85E2    	STA $E2        ; Memorize it
C3/64E2:	18      	CLC            ; Prepare ADC
C3/64E3:	65E2    	ADC $E2        ; x2
C3/64E5:	65E2    	ADC $E2        ; x3
C3/64E7:	29FE    	AND #$FE       ; -1 if odd
C3/64E9:	F002    	BEQ $64ED      ; Branch if no cmd
C3/64EB:	1A      	INC A          ; +1
C3/64EC:	1A      	INC A          ; +1
C3/64ED:	4A      	LSR A          ; 2
C3/64EE:	8F90AA7E	STA $7EAA90    ; Set L-Win heigth
C3/64F2:	8F94AA7E	STA $7EAA94    ; Set R-Win heigth
C3/64F6:	A08DAA  	LDY #$AA8D     ; 7E/AA8D
C3/64F9:	A97E    	LDA #$7E       ; Bank: 7E
C3/64FB:	85E9    	STA $E9        ; Set src HB
C3/64FD:	20C803  	JSR $03C8      ; Draw left box
C3/6500:	A091AA  	LDY #$AA91     ; 7E/AA91
C3/6503:	A97E    	LDA #$7E       ; ...
C3/6505:	85E9    	STA $E9        ; ...
C3/6507:	20C803  	JSR $03C8      ; Draw right box

Fork: Draw command list, prepare portrait hiding
C3/650A:	AF899D7E	LDA $7E9D89    ; List size
C3/650E:	85E5    	STA $E5        ; Memorize it
C3/6510:	64E6    	STZ $E6        ; Clear HB
C3/6512:	7B      	TDC            ; Clear A
C3/6513:	AA      	TAX            ; Cmd slot: 1
C3/6514:	A08B80  	LDY #$808B     ; Tilemap ptr
C3/6517:	DA      	PHX            ; Save cmd slot
C3/6518:	5A      	PHY            ; Save position
C3/6519:	BF8A9D7E	LDA $7E9D8A,X  ; Available cmd
C3/651D:	203465  	JSR $6534      ; Draw cmd name
C3/6520:	7A      	PLY            ; Text position
C3/6521:	C220    	REP #$20       ; 16-bit A
C3/6523:	98      	TYA            ; Put in A
C3/6524:	18      	CLC            ; Prepare ADC
C3/6525:	698000  	ADC #$0080     ; +2 rows down
C3/6528:	A8      	TAY            ; Put in Y
C3/6529:	E220    	SEP #$20       ; 8-bit A
C3/652B:	FA      	PLX            ; Cmd slot
C3/652C:	E8      	INX            ; Cmd slot +1
C3/652D:	E4E5    	CPX $E5        ; End of list?
C3/652F:	D0E6    	BNE $6517      ; Loop if not
C3/6531:	4CA665  	JMP $65A6      ; Set hiding spot

Draw battle command name, ignore modifiers
C3/6534:	48      	PHA            ; Save command
C3/6535:	20E135  	JSR $35E1      ; Set pos, WRAM
C3/6538:	68      	PLA            ; Battle command
C3/6539:	302A    	BMI $6565      ; Blank if none
C3/653B:	4C4365  	JMP $6543      ; Draw cmd name

Draw battle command name, apply modifiers
C3/653E:	208267  	JSR $6782      ; Apply modifiers
C3/6541:	3022    	BMI $6565      ; Blank if no cmd
C3/6543:	207B65  	JSR $657B      ; Pick a palette
C3/6546:	48      	PHA            ; Save command
C3/6547:	0A      	ASL A          ; x2
C3/6548:	0A      	ASL A          ; x4
C3/6549:	85E0    	STA $E0        ; Memorize it
C3/654B:	68      	PLA            ; Command
C3/654C:	0A      	ASL A          ; x2
C3/654D:	18      	CLC            ; ...
C3/654E:	65E0    	ADC $E0        ; x6
C3/6550:	AA      	TAX            ; Index it
C3/6551:	A00600  	LDY #$0006     ; Letters: 6
C3/6554:	BF00E3EC	LDA $ECE300,X  ; Letter
C3/6558:	8D8021  	STA $2180      ; Add to string
C3/655B:	E8      	INX            ; Point to next
C3/655C:	88      	DEY            ; One less left
C3/655D:	D0F5    	BNE $6554      ; Loop till last
C3/655F:	9C8021  	STZ $2180      ; End string
C3/6562:	4CB987  	JMP $87B9      ; Draw cmd name

Fork: Blank command slot
C3/6565:	A9FF    	LDA #$FF       ; Space char
C3/6567:	8D8021  	STA $2180      ; Add to string
C3/656A:	8D8021  	STA $2180      ; Add to string
C3/656D:	8D8021  	STA $2180      ; Add to string
C3/6570:	8D8021  	STA $2180      ; Add to string
C3/6573:	8D8021  	STA $2180      ; Add to string
C3/6576:	8D8021  	STA $2180      ; Add to string
C3/6579:	80E4    	BRA $655F      ; Draw 6 spaces

Select a palette for battle command
C3/657B:	48      	PHA            ; Save command
C3/657C:	C90B    	CMP #$0B       ; Runic?
C3/657E:	F010    	BEQ $6590      ; Branch if so
C3/6580:	C907    	CMP #$07       ; SwdTech?
C3/6582:	F016    	BEQ $659A      ; Branch if so
C3/6584:	A920    	LDA #$20       ; Palette 0
C3/6586:	8529    	STA $29        ; Color: User's
C3/6588:	68      	PLA            ; Command
C3/6589:	60      	RTS

Fork: Set to gray
C3/658A:	A924    	LDA #$24       ; Palette 1
C3/658C:	8529    	STA $29        ; Color: Gray
C3/658E:	68      	PLA            ; Command
C3/658F:	60      	RTS

Fork: Handle Runic
C3/6590:	ADDA11  	LDA $11DA      ; R-Hand can Runic?
C3/6593:	0DDB11  	ORA $11DB      ; Or L-Hand?
C3/6596:	10F2    	BPL $658A      ; Gray out if not
C3/6598:	80EA    	BRA $6584      ; Use user's color

Fork: Handle SwdTech
C3/659A:	ADDA11  	LDA $11DA      ; R-Hand flags
C3/659D:	0DDB11  	ORA $11DB      ; Add L-Hand's
C3/65A0:	8902    	BIT #$02       ; Can use SwdTech?
C3/65A2:	F0E6    	BEQ $658A      ; Gray out if not
C3/65A4:	80DE    	BRA $6584      ; Use user's color

Set a section of Status menu to mask wrapping Gogo portrait
C3/65A6:	A2CA61  	LDX #$61CA     ; Tilemap ptr
C3/65A9:	86E7    	STX $E7        ; Set dst LBs
C3/65AB:	A97E    	LDA #$7E       ; Bank: 7E
C3/65AD:	85E9    	STA $E9        ; Set dst HB
C3/65AF:	A20600  	LDX #$0006     ; Rows left: 6
C3/65B2:	7B      	TDC            ; Clear A
C3/65B3:	A8      	TAY            ; Map index: 0
C3/65B4:	A93D    	LDA #$3D       ; Pal 7, priority
C3/65B6:	97E7    	STA [$E7],Y    ; Set attributes
C3/65B8:	C8      	INY            ; Index +1
C3/65B9:	C8      	INY            ; Index +1
C3/65BA:	C01200  	CPY #$0012     ; Done 9 tiles?
C3/65BD:	D0F7    	BNE $65B6      ; Loop if not
C3/65BF:	C220    	REP #$20       ; 16-bit A
C3/65C1:	A5E7    	LDA $E7        ; Tilemap ptr
C3/65C3:	18      	CLC            ; Prepare ADC
C3/65C4:	694000  	ADC #$0040     ; Go 1 row down
C3/65C7:	85E7    	STA $E7        ; Save changes
C3/65C9:	E220    	SEP #$20       ; 8-bit A
C3/65CB:	CA      	DEX            ; One less row
C3/65CC:	D0E4    	BNE $65B2      ; Loop till last
C3/65CE:	60      	RTS

Window layout for Status menu
C3/65CF:	8B580501	; 07x03 at $588B (Title)
C3/65D3:	EB5A0906	; 11x08 at $5AEB (Commands)
C3/65D7:	8B581C18	; 30x26 at $588B (Main)
C3/65DB:	C7580012	; 02x20 at $58C7 (Gogo, L part)
C3/65DF:	87600712	; 09x20 at $6087 (Gogo, R part)

Draw actor info in Status menu
C3/65E3:	7B      	TDC            ; Clear A
C3/65E4:	A528    	LDA $28        ; Member slot
C3/65E6:	0A      	ASL A          ; Double it
C3/65E7:	AA      	TAX            ; Index it
C3/65E8:	7CEB65  	JMP ($65EB,X)  ; Draw info

Jump table for the above
C3/65EB:	F365    	; Member 1
C3/65ED:	FD65    	; Member 2
C3/65EF:	0766    	; Member 3
C3/65F1:	1166    	; Member 4

Draw member 1's info in Status menu
C3/65F3:	A66D    	LDX $6D        ; Actor address
C3/65F5:	8667    	STX $67        ; Memorize it
C3/65F7:	7B      	TDC            ; ...
C3/65F8:	A569    	LDA $69        ; Actor
C3/65FA:	4C1866  	JMP $6618      ; Draw info

Draw member 2's info in Status menu
C3/65FD:	A66F    	LDX $6F        ; Actor address
C3/65FF:	8667    	STX $67        ; Memorize it
C3/6601:	7B      	TDC            ; ...
C3/6602:	A56A    	LDA $6A        ; Actor
C3/6604:	4C1866  	JMP $6618      ; Draw info

Draw member 3's info in Status menu
C3/6607:	A671    	LDX $71        ; Actor address
C3/6609:	8667    	STX $67        ; Memorize it
C3/660B:	7B      	TDC            ; ...
C3/660C:	A56B    	LDA $6B        ; Actor
C3/660E:	4C1866  	JMP $6618      ; Draw info

Draw member 4's info in Status menu
C3/6611:	A673    	LDX $73        ; Actor address
C3/6613:	8667    	STX $67        ; Memorize it
C3/6615:	7B      	TDC            ; ...
C3/6616:	A56C    	LDA $6C        ; Actor
C3/6618:	220600C2	JSL $C20006    ; Load properties
C3/661C:	A467    	LDY $67        ; Actor's address
C3/661E:	20D7A1  	JSR $A1D7      ; Set Bat.Pwr mode
C3/6621:	A920    	LDA #$20       ; Palette 0
C3/6623:	8529    	STA $29        ; Color: User's
C3/6625:	ADA611  	LDA $11A6      ; Vigor
C3/6628:	206305  	JSR $0563      ; Turn into text
C3/662B:	A2E17E  	LDX #$7EE1     ; Text position
C3/662E:	204305  	JSR $0543      ; Draw 3 digits
C3/6631:	ADA411  	LDA $11A4      ; Speed
C3/6634:	206305  	JSR $0563      ; Turn into text
C3/6637:	A2617F  	LDX #$7F61     ; Text position
C3/663A:	204305  	JSR $0543      ; Draw 3 digits
C3/663D:	ADA211  	LDA $11A2      ; Stamina
C3/6640:	206305  	JSR $0563      ; Turn into text
C3/6643:	A2E17F  	LDX #$7FE1     ; Text position
C3/6646:	204305  	JSR $0543      ; Draw 3 digits
C3/6649:	ADA011  	LDA $11A0      ; Mag.Pwr
C3/664C:	206305  	JSR $0563      ; Turn into text
C3/664F:	A26188  	LDX #$8861     ; Text position
C3/6652:	204305  	JSR $0543      ; Draw 3 digits
C3/6655:	205A9B  	JSR $9B5A      ; Define Bat.Pwr
C3/6658:	ADAC11  	LDA $11AC      ; ...
C3/665B:	18      	CLC            ; ...
C3/665C:	6DAD11  	ADC $11AD      ; ...
C3/665F:	85F3    	STA $F3        ; ...
C3/6661:	7B      	TDC            ; ...
C3/6662:	6900    	ADC #$00       ; ...
C3/6664:	85F4    	STA $F4        ; ...
C3/6666:	20B105  	JSR $05B1      ; Turn into text
C3/6669:	A27D7E  	LDX #$7E7D     ; Text position
C3/666C:	200905  	JSR $0509      ; Draw 3 digits
C3/666F:	ADBA11  	LDA $11BA      ; Defense
C3/6672:	206305  	JSR $0563      ; Turn into text
C3/6675:	A2FD7E  	LDX #$7EFD     ; Text position
C3/6678:	204305  	JSR $0543      ; Draw 3 digits
C3/667B:	ADA811  	LDA $11A8      ; Evade
C3/667E:	206305  	JSR $0563      ; Turn into text
C3/6681:	A27D7F  	LDX #$7F7D     ; Text position
C3/6684:	204305  	JSR $0543      ; Draw 3 digits
C3/6687:	ADBB11  	LDA $11BB      ; Mag.Def
C3/668A:	206305  	JSR $0563      ; Turn into text
C3/668D:	A2FD7F  	LDX #$7FFD     ; Text position
C3/6690:	204305  	JSR $0543      ; Draw 3 digits
C3/6693:	ADAA11  	LDA $11AA      ; MBlock
C3/6696:	206305  	JSR $0563      ; Turn into text
C3/6699:	A27D88  	LDX #$887D     ; Text position
C3/669C:	204305  	JSR $0543      ; Draw 3 digits
C3/669F:	A04F39  	LDY #$394F     ; Text position
C3/66A2:	206A35  	JSR $356A      ; Draw actor name
C3/66A5:	A05D39  	LDY #$395D     ; Text position
C3/66A8:	208035  	JSR $3580      ; Draw actor class
C3/66AB:	A07139  	LDY #$3971     ; Text position
C3/66AE:	20AE35  	JSR $35AE      ; Draw held esper
C3/66B1:	205867  	JSR $6758      ; Draw commands
C3/66B4:	A920    	LDA #$20       ; Palette 0
C3/66B6:	8529    	STA $29        ; Color: User's
C3/66B8:	A2EC66  	LDX #$66EC     ; Coords tbl ptr
C3/66BB:	20D70C  	JSR $0CD7      ; Draw LV, HP, MP
C3/66BE:	A667    	LDX $67        ; Actor's address
C3/66C0:	BD1100  	LDA $0011,X    ; Experience LB
C3/66C3:	85F1    	STA $F1        ; Memorize it
C3/66C5:	BD1200  	LDA $0012,X    ; Experience MB
C3/66C8:	85F2    	STA $F2        ; Memorize it
C3/66CA:	BD1300  	LDA $0013,X    ; Experience HB
C3/66CD:	85F3    	STA $F3        ; Memorize it
C3/66CF:	200506  	JSR $0605      ; Turn into text
C3/66D2:	A2D77C  	LDX #$7CD7     ; Text position
C3/66D5:	202605  	JSR $0526      ; Draw 8 digits
C3/66D8:	20F666  	JSR $66F6      ; Get needed exp
C3/66DB:	200506  	JSR $0605      ; Turn into text
C3/66DE:	A2D77D  	LDX #$7DD7     ; Text position
C3/66E1:	202605  	JSR $0526      ; Draw 8 digits
C3/66E4:	6447    	STZ $47        ; Ailments: Off
C3/66E6:	201B12  	JSR $121B      ; Hide ail. icons
C3/66E9:	4CA468  	JMP $68A4      ; Display status

Tilemap pointers for stats in Status menu
C3/66EC:	273A    	; Level
C3/66EE:	633A    	; HP
C3/66F0:	6D3A    	; Max HP
C3/66F2:	A33A    	; MP
C3/66F4:	AD3A    	; Max MP

Calculate experience needed to level up
C3/66F6:	A667    	LDX $67        ; Actor's address
C3/66F8:	7B      	TDC            ; ...
C3/66F9:	BD0800  	LDA $0008,X    ; Level
C3/66FC:	C963    	CMP #$63       ; 99?
C3/66FE:	F019    	BEQ $6719      ; Branch if so
C3/6700:	202067  	JSR $6720      ; Get needed XP
C3/6703:	A667    	LDX $67        ; Actor's address
C3/6705:	38      	SEC            ; Prepare SBC
C3/6706:	A5F1    	LDA $F1        ; Needed XP LB
C3/6708:	FD1100  	SBC $0011,X    ; Deduct XP LB
C3/670B:	85F1    	STA $F1        ; Save changes
C3/670D:	C220    	REP #$20       ; 16-bit A
C3/670F:	A5F2    	LDA $F2        ; Needed XP HBs
C3/6711:	FD1200  	SBC $0012,X    ; Deduct XP HBs
C3/6714:	85F2    	STA $F2        ; Save changes
C3/6716:	E220    	SEP #$20       ; 8-bit A
C3/6718:	60      	RTS

Fork: Zero experience needed
C3/6719:	7B      	TDC            ; Clear A
C3/671A:	AA      	TAX            ; Clear X
C3/671B:	86F1    	STX $F1        ; Needed XP LBs
C3/671D:	64F3    	STZ $F3        ; Needed XP HB
C3/671F:	60      	RTS

Calculate total experience needed to level up
C3/6720:	0A      	ASL A          ; Level x2
C3/6721:	85EB    	STA $EB        ; Set counter
C3/6723:	7B      	TDC            ; Clear A
C3/6724:	AA      	TAX            ; 1st: Level 1
C3/6725:	86F1    	STX $F1        ; Total LBs: 0
C3/6727:	86F3    	STX $F3        ; Total HBs: 0
C3/6729:	64EC    	STZ $EC        ; Level HB: 0
C3/672B:	18      	CLC            ; ...
C3/672C:	BF2082ED	LDA $ED8220,X  ; Needed XP LB
C3/6730:	65F1    	ADC $F1        ; Add total LB
C3/6732:	85F1    	STA $F1        ; Set total LB
C3/6734:	E8      	INX            ; Index +1
C3/6735:	BF2082ED	LDA $ED8220,X  ; Needed XP HB
C3/6739:	65F2    	ADC $F2        ; Add total MB+C
C3/673B:	85F2    	STA $F2        ; Set total MB
C3/673D:	7B      	TDC            ; Zero A
C3/673E:	65F3    	ADC $F3        ; Add total HB+C
C3/6740:	85F3    	STA $F3        ; Set total HB
C3/6742:	E8      	INX            ; Index +1
C3/6743:	E4EB    	CPX $EB        ; At current LV?
C3/6745:	D0E4    	BNE $672B      ; Loop if not

Fork: Octuple total to get true value
C3/6747:	C220    	REP #$20       ; 16-bit A
C3/6749:	06F1    	ASL $F1        ; Total LBs x2
C3/674B:	26F3    	ROL $F3        ; HBs x2 + C
C3/674D:	06F1    	ASL $F1        ; Total LBs x2
C3/674F:	26F3    	ROL $F3        ; HBs x2 + C
C3/6751:	06F1    	ASL $F1        ; Total LBs x2
C3/6753:	26F3    	ROL $F3        ; HBs x2 + C
C3/6755:	E220    	SEP #$20       ; 8-bit A
C3/6757:	60      	RTS

Draw actor's command list in Status menu
C3/6758:	A0B17B  	LDY #$7BB1     ; Tilemap ptr
C3/675B:	20E135  	JSR $35E1      ; Set pos/WRAM/Y
C3/675E:	203E65  	JSR $653E      ; Draw command 1
C3/6761:	A0317C  	LDY #$7C31     ; Tilemap ptr
C3/6764:	20E135  	JSR $35E1      ; Set pos/WRAM/Y
C3/6767:	C8      	INY            ; Point to cmd 2
C3/6768:	203E65  	JSR $653E      ; Draw command 2
C3/676B:	A0B17C  	LDY #$7CB1     ; Tilemap ptr
C3/676E:	20E135  	JSR $35E1      ; Set pos/WRAM/Y
C3/6771:	C8      	INY            ; Point to cmd 2
C3/6772:	C8      	INY            ; Point to cmd 3
C3/6773:	203E65  	JSR $653E      ; Draw command 3
C3/6776:	A0317D  	LDY #$7D31     ; Tilemap ptr
C3/6779:	20E135  	JSR $35E1      ; Set pos/WRAM/Y
C3/677C:	C8      	INY            ; Point to cmd 2
C3/677D:	C8      	INY            ; Point to cmd 3
C3/677E:	C8      	INY            ; Point to cmd 4
C3/677F:	4C3E65  	JMP $653E      ; Draw command 4

Handle battle command modifiers
C3/6782:	B91600  	LDA $0016,Y    ; Command
C3/6785:	C902    	CMP #$02       ; Magic?
C3/6787:	D00B    	BNE $6794      ; Branch if not
C3/6789:	5A      	PHY            ; Save index
C3/678A:	20960D  	JSR $0D96      ; Can use magic?
C3/678D:	B004    	BCS $6793      ; Branch if so
C3/678F:	7A      	PLY            ; Actor's address
C3/6790:	A9FF    	LDA #$FF       ; Command: None
C3/6792:	60      	RTS

Fork: Morph
C3/6793:	7A      	PLY            ; Actor's address
C3/6794:	B91600  	LDA $0016,Y    ; Command
C3/6797:	C903    	CMP #$03       ; Morph?
C3/6799:	D00A    	BNE $67A5      ; Branch if not
C3/679B:	ADD11D  	LDA $1DD1      ; Event flags
C3/679E:	8904    	BIT #$04       ; Unlocked Morph?
C3/67A0:	D003    	BNE $67A5      ; Branch if so
C3/67A2:	A9FF    	LDA #$FF       ; Command: None
C3/67A4:	60      	RTS

Fork: Leap
C3/67A5:	B91600  	LDA $0016,Y    ; Command
C3/67A8:	C911    	CMP #$11       ; Leap?
C3/67AA:	D00A    	BNE $67B6      ; Branch if not
C3/67AC:	ADE411  	LDA $11E4      ; Veldt flags
C3/67AF:	8904    	BIT #$04       ; Can show Leap?
C3/67B1:	D003    	BNE $67B6      ; Branch if so
C3/67B3:	A9FF    	LDA #$FF       ; Command: None
C3/67B5:	60      	RTS

Fork: Dance
C3/67B6:	B91600  	LDA $0016,Y    ; Command
C3/67B9:	C913    	CMP #$13       ; Dance?
C3/67BB:	D008    	BNE $67C5      ; Branch if not
C3/67BD:	AD4C1D  	LDA $1D4C      ; Known Dances
C3/67C0:	D003    	BNE $67C5      ; Branch if any
C3/67C2:	A9FF    	LDA #$FF       ; Command: None
C3/67C4:	60      	RTS

Fork: Relic effects
C3/67C5:	B91600  	LDA $0016,Y    ; Command
C3/67C8:	85E0    	STA $E0        ; Memorize it
C3/67CA:	7B      	TDC            ; Clear A
C3/67CB:	AA      	TAX            ; 1st: Capture
C3/67CC:	ADD611  	LDA $11D6      ; Relic effects
C3/67CF:	297C    	AND #$7C       ; Cmd upgrades
C3/67D1:	0A      	ASL A          ; Shift bits
C3/67D2:	0A      	ASL A          ; Got current?
C3/67D3:	900A    	BCC $67DF      ; Skip if not
C3/67D5:	48      	PHA            ; Save upgrades
C3/67D6:	BFEE67C3	LDA $C367EE,X  ; Cmd to switch
C3/67DA:	C5E0    	CMP $E0        ; Current cmd?
C3/67DC:	F00A    	BEQ $67E8      ; Replace if so
C3/67DE:	68      	PLA            ; Cmd upgrades
C3/67DF:	E8      	INX            ; Index +1
C3/67E0:	E00500  	CPX #$0005     ; Done Fight?
C3/67E3:	D0ED    	BNE $67D2      ; Loop if not
C3/67E5:	A5E0    	LDA $E0        ; Original cmd
C3/67E7:	60      	RTS

Fork: Replace command
C3/67E8:	68      	PLA            ; Clean stack
C3/67E9:	BFF367C3	LDA $C367F3,X  ; New command
C3/67ED:	60      	RTS

Commands to upgrade
C3/67EE:	05      	; Steal
C3/67EF:	0F      	; Slot
C3/67F0:	0D      	; Sketch
C3/67F1:	02      	; Magic
C3/67F2:	00      	; Fight

Command upgrades
C3/67F3:	06      	; Capture
C3/67F4:	18      	; GP Rain
C3/67F5:	0E      	; Control
C3/67F6:	17      	; X Magic
C3/67F7:	16      	; Jump

Replace portrait in Status menu after actor swap
C3/67F8:	7B      	TDC            ; Clear A
C3/67F9:	A560    	LDA $60        ; Queue index
C3/67FB:	AA      	TAX            ; Index it
C3/67FC:	A9FF    	LDA #$FF       ; Null value
C3/67FE:	9FC9357E	STA $7E35C9,X  ; Hide old one

Create portrait by upper-left corner
C3/6802:	202368  	JSR $6823      ; Queue OAM fn
C3/6805:	4C2F68  	JMP $682F      ; Init sprite

Create portrait for Equip or Relic menu
C3/6808:	202368  	JSR $6823      ; Queue OAM fn
C3/680B:	8B      	PHB            ; Save DB
C3/680C:	A97E    	LDA #$7E       ; Bank: 7E
C3/680E:	48      	PHA            ; Put on stack
C3/680F:	AB      	PLB            ; Set DB to 7E
C3/6810:	C220    	REP #$20       ; 16-bit A
C3/6812:	A9C800  	LDA #$00C8     ; X: 200
C3/6815:	9DCA33  	STA $33CA,X    ; Set sprite's
C3/6818:	E220    	SEP #$20       ; 8-bit A
C3/681A:	7B      	TDC            ; ...
C3/681B:	A528    	LDA $28        ; Member slot
C3/681D:	A8      	TAY            ; Put in Y
C3/681E:	204468  	JSR $6844      ; Set Y/ptr/timer
C3/6821:	AB      	PLB            ; Restore DB
C3/6822:	60      	RTS

Create portrait A
C3/6823:	A903    	LDA #$03       ; Min slot: 24
C3/6825:	A07D0B  	LDY #$0B7D     ; C3/0B7D
C3/6828:	20DE11  	JSR $11DE      ; Queue OAM fn
C3/682B:	8A      	TXA            ; Queue index
C3/682C:	8560    	STA $60        ; Set sprite's
C3/682E:	60      	RTS

Place portrait by upper-left corner, set pose timer
C3/682F:	8B      	PHB            ; Save DB
C3/6830:	A97E    	LDA #$7E       ; Bank: 7E
C3/6832:	48      	PHA            ; Put on stack
C3/6833:	AB      	PLB            ; Set DB to 7E
C3/6834:	7B      	TDC            ; Clear A
C3/6835:	A528    	LDA $28        ; Member slot
C3/6837:	A8      	TAY            ; Put in Y
C3/6838:	205C0B  	JSR $0B5C      ; Set X position
C3/683B:	7B      	TDC            ; ...
C3/683C:	A528    	LDA $28        ; ...
C3/683E:	A8      	TAY            ; ...
C3/683F:	204468  	JSR $6844      ; Set Y/ptr/timer
C3/6842:	AB      	PLB            ; Restore DB
C3/6843:	60      	RTS

Initialize variables for portrait by either upper corner
C3/6844:	20370B  	JSR $0B37      ; Load anim ptr
C3/6847:	C220    	REP #$20       ; 16-bit A
C3/6849:	A93000  	LDA #$0030     ; Y: 48
C3/684C:	9D4A34  	STA $344A,X    ; Set sprite's
C3/684F:	E220    	SEP #$20       ; 8-bit A
C3/6851:	4C7112  	JMP $1271      ; Set pose timer

Set to condense BG3 text in Status menu
C3/6854:	A902    	LDA #$02       ; 1Rx2B to PPU
C3/6856:	8D5043  	STA $4350      ; Set DMA mode
C3/6859:	A912    	LDA #$12       ; $2112
C3/685B:	8D5143  	STA $4351      ; To BG3 V-Scroll
C3/685E:	A07368  	LDY #$6873     ; C3/6873
C3/6861:	8C5243  	STY $4352      ; Set src LBs
C3/6864:	A9C3    	LDA #$C3       ; Bank: C3
C3/6866:	8D5443  	STA $4354      ; Set src HB
C3/6869:	A9C3    	LDA #$C3       ; ...
C3/686B:	8D5743  	STA $4357      ; Set indir HB
C3/686E:	A920    	LDA #$20       ; Channel: 5
C3/6870:	0443    	TSB $43        ; Queue HDMA-5
C3/6872:	60      	RTS

Text shifting table for the above
C3/6873:	27 0000 	; Status
C3/6876:	0C 0400 	; Cmd choice A
C3/6879:	0C 0800 	; Cmd choice B
C3/687C:	0C 0C00 	; Cmd choice C
C3/687F:	0C 1000 	; Cmd choice D
C3/6882:	0C 1400 	; Command A
C3/6885:	0C 1800 	; Command B
C3/6888:	0C 1C00 	; Command C
C3/688B:	0C 2000 	; Command D
C3/688E:	0C 2400 	; Needed exp.
C3/6891:	0C 2800 	; Bat.Pwr
C3/6894:	0C 2C00 	; Defense
C3/6897:	0C 3000 	; Evade
C3/689A:	0C 3400 	; Mag.Def
C3/689D:	0C 3800 	; MBlock
C3/68A0:	0C 3C00 	; Nothing
C3/68A3:	00      	; End

Display status effects in Status menu
C3/68A4:	A0DD38  	LDY #$38DD     ; Text position
C3/68A7:	A25010  	LDX #$1050     ; Icon position
C3/68AA:	86E7    	STX $E7        ; Set as current
C3/68AC:	20E135  	JSR $35E1      ; Set text pos
C3/68AF:	B91400  	LDA $0014,Y    ; Wounded?
C3/68B2:	307C    	BMI $6930      ; Draw it if so
C3/68B4:	2970    	AND #$70       ; Clear/Imp/Pet
C3/68B6:	85E1    	STA $E1        ; Memorize them
C3/68B8:	B91400  	LDA $0014,Y    ; Status effects
C3/68BB:	2907    	AND #$07       ; Dark/Zom/Poison
C3/68BD:	0A      	ASL A          ; Put in b1-b3
C3/68BE:	85E2    	STA $E2        ; Memorize them
C3/68C0:	B91500  	LDA $0015,Y    ; Status effects
C3/68C3:	2980    	AND #$80       ; Isolate Float
C3/68C5:	05E1    	ORA $E1        ; Add Clear, etc.
C3/68C7:	05E2    	ORA $E2        ; Add Dark, etc.
C3/68C9:	85E1    	STA $E1        ; ...
C3/68CB:	F05D    	BEQ $692A      ; Blank if none
C3/68CD:	64F1    	STZ $F1        ; GFX index LB: 0
C3/68CF:	64F2    	STZ $F2        ; GFX index HB: 0
C3/68D1:	A20700  	LDX #$0007     ; Status left: 7
C3/68D4:	DA      	PHX            ; Save counter
C3/68D5:	0A      	ASL A          ; Got current?
C3/68D6:	9046    	BCC $691E      ; Skip if not
C3/68D8:	48      	PHA            ; Save status
C3/68D9:	A903    	LDA #$03       ; Min slot: 24
C3/68DB:	A0C982  	LDY #$82C9     ; C3/82C9
C3/68DE:	20DE11  	JSR $11DE      ; Queue icon OAM
C3/68E1:	A901    	LDA #$01       ; Pans with BG1
C3/68E3:	9F4A367E	STA $7E364A,X  ; Set OBJ flags
C3/68E7:	7B      	TDC            ; Anim mode: 0
C3/68E8:	9F49367E	STA $7E3649,X  ; Set icon's
C3/68EC:	9B      	TXY            ; Queue index
C3/68ED:	A6F1    	LDX $F1        ; GFX index
C3/68EF:	8B      	PHB            ; Save DB
C3/68F0:	A97E    	LDA #$7E       ; Bank: 7E
C3/68F2:	48      	PHA            ; Put on stack
C3/68F3:	AB      	PLB            ; Set DB to 7E
C3/68F4:	C220    	REP #$20       ; 16-bit A
C3/68F6:	BFAFECD8	LDA $D8ECAF,X  ; Anim table ptr
C3/68FA:	99C932  	STA $32C9,Y    ; Set icon's
C3/68FD:	E220    	SEP #$20       ; 8-bit A
C3/68FF:	A5E7    	LDA $E7        ; X position
C3/6901:	99CA33  	STA $33CA,Y    ; Set icon's
C3/6904:	A5E8    	LDA $E8        ; Y position
C3/6906:	994A34  	STA $344A,Y    ; Set icon's
C3/6909:	7B      	TDC            ; Clear A
C3/690A:	99CB33  	STA $33CB,Y    ; No use...
C3/690D:	994B34  	STA $344B,Y    ; No use...
C3/6910:	A9D8    	LDA #$D8       ; Bank: D8
C3/6912:	99CA35  	STA $35CA,Y    ; Set ptr HB
C3/6915:	AB      	PLB            ; Restore DB
C3/6916:	18      	CLC            ; Prepare ADC
C3/6917:	A90A    	LDA #$0A       ; Modifier: +10
C3/6919:	65E7    	ADC $E7        ; Add current X
C3/691B:	85E7    	STA $E7        ; Set current X
C3/691D:	68      	PLA            ; Status effects
C3/691E:	E6F1    	INC $F1        ; GFX index +1
C3/6920:	E6F1    	INC $F1        ; GFX index +1
C3/6922:	FA      	PLX            ; Status left
C3/6923:	CA      	DEX            ; One less left
C3/6924:	D0AE    	BNE $68D4      ; Loop till last
C3/6926:	A920    	LDA #$20       ; Palette 0
C3/6928:	8529    	STA $29        ; Color: User's
C3/692A:	204F69  	JSR $694F      ; Load 8 spaces
C3/692D:	4CB987  	JMP $87B9      ; Blank "Wounded"

Fork: Draw "Wounded"
C3/6930:	A28B9E  	LDX #$9E8B     ; 7E/9E8B
C3/6933:	8E8121  	STX $2181      ; Set WRAM LBs
C3/6936:	A600    	LDX $00        ; Index: 0
C3/6938:	BFE337C3	LDA $C337E3,X  ; Letter
C3/693C:	8D8021  	STA $2180      ; Add to string
C3/693F:	E8      	INX            ; Point to next
C3/6940:	E00800  	CPX #$0008     ; Copied 8?
C3/6943:	D0F3    	BNE $6938      ; Loop if not
C3/6945:	9C8021  	STZ $2180      ; End string
C3/6948:	A928    	LDA #$28       ; Palette 2
C3/694A:	8529    	STA $29        ; Color: Gray
C3/694C:	4CB987  	JMP $87B9      ; Draw string

Create blank string for erasing "Wounded"
C3/694F:	A28B9E  	LDX #$9E8B     ; 7E/9E8B
C3/6952:	8E8121  	STX $2181      ; Set WRAM LBs
C3/6955:	A600    	LDX $00        ; Spaces: 0
C3/6957:	A9FF    	LDA #$FF       ; Space char
C3/6959:	8D8021  	STA $2180      ; Add to string
C3/695C:	E8      	INX            ; One more done
C3/695D:	E00800  	CPX #$0008     ; Added 8?
C3/6960:	D0F7    	BNE $6959      ; Loop if not
C3/6962:	9C8021  	STZ $2180      ; End string
C3/6965:	60      	RTS

42: Initialize Lineup's Status menu
C3/6966:	20F735  	JSR $35F7      ; Reset/Stop stuff
C3/6969:	AD0002  	LDA $0200      ; Menu number
C3/696C:	8522    	STA $22        ; Memorize it
C3/696E:	9C0002  	STZ $0200      ; Actor arrows: Off...
C3/6971:	6425    	STZ $25        ; Never read...
C3/6973:	A940    	LDA #$40       ; Channel: 6
C3/6975:	1443    	TRB $43        ; Halt HDMA-6...
C3/6977:	205468  	JSR $6854      ; Set to shift text
C3/697A:	209D69  	JSR $699D      ; Draw menu; portrait
C3/697D:	A901    	LDA #$01       ; C3/1DE4
C3/697F:	8526    	STA $26        ; Next: Fade-in
C3/6981:	A943    	LDA #$43       ; C3/6988
C3/6983:	8527    	STA $27        ; Queue: Sustain menu
C3/6985:	4C0936  	JMP $3609      ; BRT:1 + NMI

43: Sustain Lineup's Status menu
C3/6988:	A509    	LDA $09        ; No-autofire keys
C3/698A:	8980    	BIT #$80       ; Pushing B?
C3/698C:	F00E    	BEQ $699C      ; Exit if not
C3/698E:	20140F  	JSR $0F14      ; Sound: Cursor
C3/6991:	A54C    	LDA $4C        ; Menu return cmd
C3/6993:	8527    	STA $27        ; Queue menu exit
C3/6995:	6426    	STZ $26        ; Next: Fade-out
C3/6997:	A522    	LDA $22        ; Former menu
C3/6999:	8D0002  	STA $0200      ; Set as current
C3/699C:	60      	RTS

Draw Lineup's Status menu, create portrait
C3/699D:	207463  	JSR $6374      ; Draw windows
C3/69A0:	209963  	JSR $6399      ; Draw blue text
C3/69A3:	20C269  	JSR $69C2      ; Get actor address
C3/69A6:	201866  	JSR $6618      ; Draw actor info
C3/69A9:	20D463  	JSR $63D4      ; Upload tilemaps
C3/69AC:	202368  	JSR $6823      ; Init portrait
C3/69AF:	8B      	PHB            ; Save DB
C3/69B0:	A97E    	LDA #$7E       ; Bank: 7E
C3/69B2:	48      	PHA            ; Put on stack
C3/69B3:	AB      	PLB            ; Set DB to 7E
C3/69B4:	7B      	TDC            ; Clear A
C3/69B5:	A528    	LDA $28        ; Actor
C3/69B7:	A8      	TAY            ; Index it
C3/69B8:	20D769  	JSR $69D7      ; Set portrait's X
C3/69BB:	7B      	TDC            ; Clear A
C3/69BC:	A8      	TAY            ; Portrait slot: 1
C3/69BD:	204468  	JSR $6844      ; Set Y/ptr/timer
C3/69C0:	AB      	PLB            ; Restore DB
C3/69C1:	60      	RTS

Load actor number and address for Lineup's Status menu
C3/69C2:	7B      	TDC            ; Clear A
C3/69C3:	A5C9    	LDA $C9        ; Actor
C3/69C5:	8528    	STA $28        ; Memorize it
C3/69C7:	0A      	ASL A          ; Double it
C3/69C8:	AA      	TAX            ; Index it
C3/69C9:	C220    	REP #$20       ; 16-bit A
C3/69CB:	BFDB70C3	LDA $C370DB,X  ; Actor's address
C3/69CF:	8567    	STA $67        ; Memorize it
C3/69D1:	E220    	SEP #$20       ; 8-bit A
C3/69D3:	7B      	TDC            ; ...
C3/69D4:	A5C9    	LDA $C9        ; Actor
C3/69D6:	60      	RTS

Set portrait's X position for Lineup's Status menu
C3/69D7:	B95018  	LDA $1850,Y    ; Actor info
C3/69DA:	8920    	BIT #$20       ; Back row?
C3/69DC:	F007    	BEQ $69E5      ; Branch if not
C3/69DE:	C220    	REP #$20       ; 16-bit A
C3/69E0:	A91A00  	LDA #$001A     ; X: 26
C3/69E3:	8005    	BRA $69EA      ; Skip 2 lines
C3/69E5:	C220    	REP #$20       ; 16-bit A
C3/69E7:	A90E00  	LDA #$000E     ; X: 15
C3/69EA:	9DCA33  	STA $33CA,X    ; Set sprite's
C3/69ED:	E220    	SEP #$20       ; 8-bit A
C3/69EF:	60      	RTS

6A: Sustain shifted Status menu
C3/69F0:	20526A  	JSR $6A52      ; Handle D-Pad
C3/69F3:	A508    	LDA $08        ; No-autofire keys
C3/69F5:	8980    	BIT #$80       ; Pushing A?
C3/69F7:	F02A    	BEQ $6A23      ; Branch if not
C3/69F9:	201D0F  	JSR $0F1D      ; Sound: Click
C3/69FC:	9C6500  	STZ $0065      ; Edited slot HB
C3/69FF:	7B      	TDC            ; Clear A
C3/6A00:	A54B    	LDA $4B        ; Cursor slot
C3/6A02:	AA      	TAX            ; Index it
C3/6A03:	BF8A9D7E	LDA $7E9D8A,X  ; Chosen command
C3/6A07:	85E0    	STA $E0        ; Memorize it
C3/6A09:	7B      	TDC            ; ...
C3/6A0A:	A528    	LDA $28        ; Member slot
C3/6A0C:	0A      	ASL A          ; Double it
C3/6A0D:	AA      	TAX            ; Index it
C3/6A0E:	B46D    	LDY $6D,X      ; Actor's address
C3/6A10:	C220    	REP #$20       ; 16-bit A
C3/6A12:	98      	TYA            ; Move it to A
C3/6A13:	18      	CLC            ; Prepare ADC
C3/6A14:	6564    	ADC $64        ; Add edited slot
C3/6A16:	A8      	TAY            ; Index sum
C3/6A17:	E220    	SEP #$20       ; 8-bit A
C3/6A19:	A5E0    	LDA $E0        ; Chosen command
C3/6A1B:	991600  	STA $0016,Y    ; Assign to actor
C3/6A1E:	205867  	JSR $6758      ; Redraw commands
C3/6A21:	8009    	BRA $6A2C      ; Shift screen

Fork: Handle B
C3/6A23:	A509    	LDA $09        ; No-autofire keys
C3/6A25:	8980    	BIT #$80       ; Pushing B?
C3/6A27:	F022    	BEQ $6A4B      ; Exit if not
C3/6A29:	20140F  	JSR $0F14      ; Sound: Cursor
C3/6A2C:	A901    	LDA #$01       ; Blinker: Off
C3/6A2E:	1446    	TRB $46        ; Set menu flag
C3/6A30:	A906    	LDA #$06       ; Frames: 6
C3/6A32:	8520    	STA $20        ; Set scroll timer
C3/6A34:	A0F4FF  	LDY #$FFF4     ; Speed: -12
C3/6A37:	849C    	STY $9C        ; Set scroll speed
C3/6A39:	A90C    	LDA #$0C       ; C3/2255
C3/6A3B:	8527    	STA $27        ; Queue: Normal menu
C3/6A3D:	A965    	LDA #$65       ; C3/37AF
C3/6A3F:	8526    	STA $26        ; Next: Shift screen
C3/6A41:	20C737  	JSR $37C7      ; Load navig data
C3/6A44:	A55E    	LDA $5E        ; Old cursor row
C3/6A46:	854E    	STA $4E        ; Set as current
C3/6A48:	20D037  	JSR $37D0      ; Relocate cursor
C3/6A4B:	60      	RTS

Load navigation data for shifted Status menu
C3/6A4C:	A05B6A  	LDY #$6A5B     ; C3/6A5B
C3/6A4F:	4C8106  	JMP $0681      ; Load navig data

Handle D-Pad for shifted Status menu
C3/6A52:	20B007  	JSR $07B0      ; Handle D-Pad
C3/6A55:	A0606A  	LDY #$6A60     ; C3/6A60
C3/6A58:	4CC306  	JMP $06C3      ; Relocate cursor

Navigation data for shifted Status menu
C3/6A5B:	80      	; Wraps vertically
C3/6A5C:	00      	; Initial column
C3/6A5D:	00      	; Initial row
C3/6A5E:	01      	; 1 column
C3/6A5F:	10      	; 16 rows

Cursor positions for shifted Status menu
C3/6A60:	F810    	; Empty
C3/6A62:	F81C    	; Command 1
C3/6A64:	F828    	; Command 2
C3/6A66:	F834    	; Command 3
C3/6A68:	F840    	; Command 4
C3/6A6A:	F84C    	; Command 5
C3/6A6C:	F858    	; Command 6
C3/6A6E:	F864    	; Command 7
C3/6A70:	F870    	; Command 8
C3/6A72:	F87C    	; Command 9
C3/6A74:	F888    	; Command 10
C3/6A76:	F894    	; Command 11
C3/6A78:	F8A0    	; Command 12
C3/6A7A:	F8AC    	; Command 13
C3/6A7C:	F8B8    	; Command 14
C3/6A7E:	F8C4    	; Command 15 (unused)

Text pointers for Status menu
C3/6A80:	D96A                           ; Vigor
C3/6A82:	DF6A                           ; Stamina
C3/6A84:	E76A                           ; Mag.Pwr
C3/6A86:	EE6A                           ; Evade
C3/6A88:	F66A                           ; MBlock..
C3/6A8A:	036B                           ; ..
C3/6A8C:	076B                           ; ..
C3/6A8E:	0B6B                           ; ..
C3/6A90:	0F6B                           ; ..
C3/6A92:	136B                           ; ..
C3/6A94:	176B                           ; ..
C3/6A96:	B26A                           ; Status

Text pointers for Status menu
C3/6A98:	CA6A                           ; LV
C3/6A9A:	CF6A                           ; HP
C3/6A9C:	D46A                           ; MP

Text pointers for Status menu
C3/6A9E:	BA6A                           ; /
C3/6AA0:	BE6A                           ; /
C3/6AA2:	C26A                           ; %
C3/6AA4:	C66A                           ; %

Text pointers for Status menu
C3/6AA6:	1B6B                           ; Speed
C3/6AA8:	226B                           ; Bat.Pwr..
C3/6AAA:	2F6B                           ; Defense
C3/6AAC:	366B                           ; Mag.Def..
C3/6AAE:	436B                           ; Your Exp:
C3/6AB0:	506B                           ; For level up:

Positioned text for Status menu
C3/6AB2:	CD78 7884C57E7800              ; Status
C3/6ABA:	6B3A CE00                      ; /
C3/6ABE:	AB3A CE00                      ; /
C3/6AC2:	837F CD00                      ; %
C3/6AC6:	8388 CD00                      ; %
C3/6ACA:	1D3A 2B3500                    ; LV
C3/6ACF:	5D3A 272F00                    ; HP
C3/6AD4:	9D3A 2C2F00                    ; MP
C3/6AD9:	D17E 816BA700                  ; Vigor
C3/6ADF:	D17F 7F8DA9C36F00              ; Stamina
C3/6AE7:	5188 9DA9C36F00                ; Mag.Pwr
C3/6AEE:	697F 6B8D63A98300              ; Evade
C3/6AF6:	6988 9D69896B8D63A983FFC700    ; MBlock..
C3/6B03:	DD7E C700                      ; ..
C3/6B07:	5D7F C700                      ; ..
C3/6B0B:	DD7F C700                      ; ..
C3/6B0F:	5D88 C700                      ; ..
C3/6B13:	FB7E C700                      ; ..
C3/6B17:	7B7F C700                      ; ..
C3/6B1B:	117F 7921B17500                ; Speed
C3/6B22:	297E 7389316DA9C36FFFFFC700    ; Bat.Pwr..
C3/6B2F:	A97E 29892DC300                ; Defense
C3/6B36:	A97F 9D698929892DC3FFFFC700    ; Mag.Def..
C3/6B43:	117C 31B9358D9B718D71B98100    ; Your Exp:
C3/6B50:	117D 832D9BAC26AA9D45FF8B8700  ; For level up:

5D: Initialize actor naming menu
C3/6B5E:	20F735  	JSR $35F7      ; Reset/Stop stuff
C3/6B61:	AC0102  	LDY $0201      ; Actor's address
C3/6B64:	8467    	STY $67        ; Memorize it
C3/6B66:	207670  	JSR $7076      ; Reset BGs' X/Y
C3/6B69:	A902    	LDA #$02       ; Main cursor: On
C3/6B6B:	8546    	STA $46        ; Bar/Blinker: Off
C3/6B6D:	644A    	STZ $4A        ; Page: 1st
C3/6B6F:	20206D  	JSR $6D20      ; Load navig data
C3/6B72:	20296D  	JSR $6D29      ; Relocate cursor
C3/6B75:	203308  	JSR $0833      ; Queue cursor OAM
C3/6B78:	20296E  	JSR $6E29      ; Draw menu
C3/6B7B:	20096D  	JSR $6D09      ; Set arrow's column
C3/6B7E:	A901    	LDA #$01       ; Min slot: 8
C3/6B80:	A0CA6F  	LDY #$6FCA     ; C3/6FCA
C3/6B83:	20DE11  	JSR $11DE      ; Queue large arrow
C3/6B86:	20636F  	JSR $6F63      ; Set to shift text
C3/6B89:	20B36E  	JSR $6EB3      ; Get portrait colors
C3/6B8C:	20986E  	JSR $6E98      ; Upload portrait GFX
C3/6B8F:	20FC6D  	JSR $6DFC      ; Create portrait
C3/6B92:	A902    	LDA #$02       ; Min slot: 16
C3/6B94:	A02C70  	LDY #$702C     ; C3/702C
C3/6B97:	20DE11  	JSR $11DE      ; Queue small arrow
C3/6B9A:	A95F    	LDA #$5F       ; C3/6BA5
C3/6B9C:	8527    	STA $27        ; Queue: Sustain menu
C3/6B9E:	A901    	LDA #$01       ; C3/1DE4
C3/6BA0:	8526    	STA $26        ; Next: Fade-in
C3/6BA2:	4C0936  	JMP $3609      ; BRT:1 + NMI

5F: Sustain actor naming menu
C3/6BA5:	A50B    	LDA $0B        ; Semi-auto keys
C3/6BA7:	8904    	BIT #$04       ; Pushing down?
C3/6BA9:	F00E    	BEQ $6BB9      ; Branch if not
C3/6BAB:	A54E    	LDA $4E        ; Cursor row
C3/6BAD:	C909    	CMP #$09       ; On bottom row?
C3/6BAF:	D008    	BNE $6BB9      ; Branch if not
C3/6BB1:	A960    	LDA #$60       ; C3/6C4A
C3/6BB3:	8526    	STA $26        ; Next: Scroll
C3/6BB5:	A915    	LDA #$15       ; Frames: 21
C3/6BB7:	8520    	STA $20        ; Set scroll timer

Fork: Handle upward scrolling
C3/6BB9:	A50B    	LDA $0B        ; Semi-auto keys
C3/6BBB:	8908    	BIT #$08       ; Pushing up?
C3/6BBD:	F00C    	BEQ $6BCB      ; Branch if not
C3/6BBF:	A54E    	LDA $4E        ; On top row?
C3/6BC1:	D008    	BNE $6BCB      ; Skip if not
C3/6BC3:	A961    	LDA #$61       ; C3/6C71
C3/6BC5:	8526    	STA $26        ; Next: Scroll
C3/6BC7:	A915    	LDA #$15       ; Frames: 21
C3/6BC9:	8520    	STA $20        ; Set scroll timer

Fork: Handle L and R and intrapage navigation, redraw name
C3/6BCB:	20540F  	JSR $0F54      ; Queue text upload
C3/6BCE:	20996C  	JSR $6C99      ; Handle L and R
C3/6BD1:	20266D  	JSR $6D26      ; Handle D-Pad
C3/6BD4:	20866E  	JSR $6E86      ; Draw actor name

Fork: Handle Start
C3/6BD7:	A509    	LDA $09        ; No-autofire keys
C3/6BD9:	8910    	BIT #$10       ; Pushing Start?
C3/6BDB:	F003    	BEQ $6BE0      ; Branch if not
C3/6BDD:	4C246C  	JMP $6C24      ; Validate name

Fork: Handle A
C3/6BE0:	A508    	LDA $08        ; No-autofire keys
C3/6BE2:	8980    	BIT #$80       ; Pushing A?
C3/6BE4:	F011    	BEQ $6BF7      ; Branch if not
C3/6BE6:	201D0F  	JSR $0F1D      ; Sound: Click
C3/6BE9:	7B      	TDC            ; Mode: Add
C3/6BEA:	20D06C  	JSR $6CD0      ; Add letter
C3/6BED:	A528    	LDA $28        ; Arrow's column
C3/6BEF:	C905    	CMP #$05       ; Rightmost?
C3/6BF1:	F001    	BEQ $6BF4      ; Exit if so
C3/6BF3:	1A      	INC A          ; Go right by 1
C3/6BF4:	8528    	STA $28        ; Save changes
C3/6BF6:	60      	RTS

Fork: Handle B
C3/6BF7:	A509    	LDA $09        ; No-autofire keys
C3/6BF9:	8980    	BIT #$80       ; Pushing B?
C3/6BFB:	F026    	BEQ $6C23      ; Exit if not
C3/6BFD:	20320F  	JSR $0F32      ; Sound: Delete
C3/6C00:	A528    	LDA $28        ; Arrow's column
C3/6C02:	F01F    	BEQ $6C23      ; Exit if first
C3/6C04:	C905    	CMP #$05       ; Rightmost?
C3/6C06:	D00F    	BNE $6C17      ; Branch if not
C3/6C08:	20F76C  	JSR $6CF7      ; Define Y
C3/6C0B:	B90200  	LDA $0002,Y    ; Letter 6
C3/6C0E:	C9FF    	CMP #$FF       ; Blank?
C3/6C10:	F005    	BEQ $6C17      ; Branch if so
C3/6C12:	A9FF    	LDA #$FF       ; Mode: Delete V1
C3/6C14:	4CD06C  	JMP $6CD0      ; Delete letter 6

Fork: Delete non-sixth letter
C3/6C17:	A901    	LDA #$01       ; Mode: Delete V2
C3/6C19:	20D06C  	JSR $6CD0      ; Delete letter
C3/6C1C:	A528    	LDA $28        ; Arrow's column
C3/6C1E:	F001    	BEQ $6C21      ; ...
C3/6C20:	3A      	DEC A          ; Go left by 1
C3/6C21:	8528    	STA $28        ; Save changes
C3/6C23:	60      	RTS

Validate entered actor name
C3/6C24:	A467    	LDY $67        ; Actor's address
C3/6C26:	A600    	LDX $00        ; Letter count: 0
C3/6C28:	B90200  	LDA $0002,Y    ; Letter
C3/6C2B:	C9FF    	CMP #$FF       ; Terminator?
C3/6C2D:	D00E    	BNE $6C3D      ; Valid if not
C3/6C2F:	C8      	INY            ; Letter index +1
C3/6C30:	E8      	INX            ; Letter count +1
C3/6C31:	E00600  	CPX #$0006     ; Done 6 letters?
C3/6C34:	D0F2    	BNE $6C28      ; Loop if not
C3/6C36:	202B0F  	JSR $0F2B      ; Play buzzer
C3/6C39:	20F830  	JSR $30F8      ; Pixelate screen
C3/6C3C:	60      	RTS            ; Exit
C3/6C3D:	201D0F  	JSR $0F1D      ; Sound: Click
C3/6C40:	9C0502  	STZ $0205      ; Never read...
C3/6C43:	A9FF    	LDA #$FF       ; Null value
C3/6C45:	8527    	STA $27        ; Queue menu exit
C3/6C47:	6426    	STZ $26        ; Next: Fade-out
C3/6C49:	60      	RTS

60: Scroll to actor naming page 2 if valid starting point
C3/6C4A:	A520    	LDA $20        ; Timer expired?
C3/6C4C:	F018    	BEQ $6C66      ; Finalize if so
C3/6C4E:	A54A    	LDA $4A        ; Bottom of P2?
C3/6C50:	D01A    	BNE $6C6C      ; Cancel if so
C3/6C52:	C221    	REP #$21       ; 16-bit A; C-
C3/6C54:	AFCD9B7E	LDA $7E9BCD    ; BG1 V-Shift
C3/6C58:	690800  	ADC #$0008     ; Go 8 px down
C3/6C5B:	8FCD9B7E	STA $7E9BCD    ; For upper chars
C3/6C5F:	8FD09B7E	STA $7E9BD0    ; For lower chars
C3/6C63:	E220    	SEP #$20       ; 8-bit A
C3/6C65:	60      	RTS

Fork: Restore control
C3/6C66:	A964    	LDA #$64       ; Chars per page
C3/6C68:	854A    	STA $4A        ; Set tbl index
C3/6C6A:	644E    	STZ $4E        ; Cursor row: 1
C3/6C6C:	A95F    	LDA #$5F       ; C3/656C
C3/6C6E:	8526    	STA $26        ; Next: Resume
C3/6C70:	60      	RTS

61: Scroll to actor naming page 1 if valid starting point
C3/6C71:	A520    	LDA $20        ; Timer expired?
C3/6C73:	F019    	BEQ $6C8E      ; Finalize if so
C3/6C75:	A54A    	LDA $4A        ; Top of page 1?
C3/6C77:	F01B    	BEQ $6C94      ; Cancel if so
C3/6C79:	C220    	REP #$20       ; 16-bit A
C3/6C7B:	AFCD9B7E	LDA $7E9BCD    ; BG1 V-Shift
C3/6C7F:	38      	SEC            ; Prepare SBC
C3/6C80:	E90800  	SBC #$0008     ; Go 8 px up
C3/6C83:	8FCD9B7E	STA $7E9BCD    ; For upper chars
C3/6C87:	8FD09B7E	STA $7E9BD0    ; For lower chars
C3/6C8B:	E220    	SEP #$20       ; 8-bit A
C3/6C8D:	60      	RTS

Fork: Restore control
C3/6C8E:	644A    	STZ $4A        ; Char tbl index
C3/6C90:	A909    	LDA #$09       ; Row: Last
C3/6C92:	854E    	STA $4E        ; Set cursor's
C3/6C94:	A95F    	LDA #$5F       ; C3/656C
C3/6C96:	8526    	STA $26        ; Next: Resume
C3/6C98:	60      	RTS

Handle L and R for actor naming menu
C3/6C99:	A508    	LDA $08        ; No-autofire keys
C3/6C9B:	8910    	BIT #$10       ; Pushing R?
C3/6C9D:	D004    	BNE $6CA3      ; Branch if so
C3/6C9F:	8920    	BIT #$20       ; Pushing L?
C3/6CA1:	F01A    	BEQ $6CBD      ; Exit if not
C3/6CA3:	200E0F  	JSR $0F0E      ; Sound: Cursor
C3/6CA6:	A54A    	LDA $4A        ; On page 2?
C3/6CA8:	D014    	BNE $6CBE      ; Branch if so

Fork: Switch to page 2
C3/6CAA:	A964    	LDA #$64       ; Chars per page
C3/6CAC:	854A    	STA $4A        ; Set tbl index
C3/6CAE:	C220    	REP #$20       ; 16-bit A
C3/6CB0:	A97000  	LDA #$0070     ; BG1 V-Shift: 112
C3/6CB3:	8FCD9B7E	STA $7E9BCD    ; For upper chars
C3/6CB7:	8FD09B7E	STA $7E9BD0    ; For lower chars
C3/6CBB:	E220    	SEP #$20       ; 8-bit A
C3/6CBD:	60      	RTS

Fork: Switch to page 1
C3/6CBE:	644A    	STZ $4A        ; Char tbl index
C3/6CC0:	C220    	REP #$20       ; 16-bit A
C3/6CC2:	A9D0FF  	LDA #$FFD0     ; BG1 V-Shift: -48
C3/6CC5:	8FCD9B7E	STA $7E9BCD    ; For upper chars
C3/6CC9:	8FD09B7E	STA $7E9BD0    ; For lower chars
C3/6CCD:	E220    	SEP #$20       ; 8-bit A
C3/6CCF:	60      	RTS

Add or remove letter from actor name
C3/6CD0:	48      	PHA            ; Save mode
C3/6CD1:	20F76C  	JSR $6CF7      ; Define Y
C3/6CD4:	68      	PLA            ; Deleting 6th?
C3/6CD5:	300B    	BMI $6CE2      ; Branch if so
C3/6CD7:	F00F    	BEQ $6CE8      ; Branch if adding
C3/6CD9:	A9FF    	LDA #$FF       ; Char: Terminator
C3/6CDB:	990200  	STA $0002,Y    ; ...
C3/6CDE:	990100  	STA $0001,Y    ; Clear last letter
C3/6CE1:	60      	RTS

Fork: Delete letter 6
C3/6CE2:	A9FF    	LDA #$FF       ; Char: Terminator
C3/6CE4:	990200  	STA $0002,Y    ; Clear letter 6
C3/6CE7:	60      	RTS

Fork: Add selected letter
C3/6CE8:	7B      	TDC            ; Clear A
C3/6CE9:	A54B    	LDA $4B        ; Selected slot
C3/6CEB:	18      	CLC            ; Prepare ADC
C3/6CEC:	654A    	ADC $4A        ; +100 if page 2
C3/6CEE:	AA      	TAX            ; Index sum
C3/6CEF:	BFC8E8D8	LDA $D8E8C8,X  ; Chosen letter
C3/6CF3:	990200  	STA $0002,Y    ; Add to name
C3/6CF6:	60      	RTS

Get index for overwritten letter in actor naming menu
C3/6CF7:	A467    	LDY $67        ; Actor's address
C3/6CF9:	A528    	LDA $28        ; Arrow column
C3/6CFB:	85E7    	STA $E7        ; Memorize it
C3/6CFD:	64E8    	STZ $E8        ; Clear HB
C3/6CFF:	C220    	REP #$20       ; 16-bit A
C3/6D01:	98      	TYA            ; Actor's address
C3/6D02:	18      	CLC            ; Prepare ADC
C3/6D03:	65E7    	ADC $E7        ; Add column
C3/6D05:	A8      	TAY            ; Put sum in Y
C3/6D06:	E220    	SEP #$20       ; 8-bit A
C3/6D08:	60      	RTS

Initialize arrow's column for actor naming menu
C3/6D09:	A467    	LDY $67        ; Actor's address
C3/6D0B:	A600    	LDX $00        ; Column: 1st
C3/6D0D:	B90200  	LDA $0002,Y    ; Current letter
C3/6D10:	C9FF    	CMP #$FF       ; Terminator?
C3/6D12:	F008    	BEQ $6D1C      ; Branch if so
C3/6D14:	C8      	INY            ; Point to next
C3/6D15:	E8      	INX            ; Arrow column +1
C3/6D16:	E00600  	CPX #$0006     ; Done 6 letters?
C3/6D19:	D0F2    	BNE $6D0D      ; Loop if not
C3/6D1B:	CA      	DEX            ; Column: 6th
C3/6D1C:	8A      	TXA            ; Move column to A
C3/6D1D:	8528    	STA $28        ; Set arrow column
C3/6D1F:	60      	RTS

Load navigation data for actor naming menu
C3/6D20:	A02F6D  	LDY #$6D2F     ; C3/6D2F
C3/6D23:	4C8106  	JMP $0681      ; Load navig data

Handle D-Pad for actor naming menu
C3/6D26:	20B007  	JSR $07B0      ; Handle D-Pad
C3/6D29:	A0346D  	LDY #$6D34     ; C3/6D34
C3/6D2C:	4CC306  	JMP $06C3      ; Relocate cursor

Navigation data for actor naming menu
C3/6D2F:	01      	; Wraps horizontally
C3/6D30:	00      	; Initial column
C3/6D31:	00      	; Initial row
C3/6D32:	0A      	; 10 columns
C3/6D33:	0A      	; 10 rows

Cursor positions for actor naming menu
C3/6D34:	3838    	; Row 1, column 1
C3/6D36:	4838    	; Row 1, column 2
C3/6D38:	5838    	; Row 1, column 3
C3/6D3A:	6838    	; Row 1, column 4
C3/6D3C:	7838    	; Row 1, column 5
C3/6D3E:	9038    	; Row 1, column 6
C3/6D40:	A038    	; Row 1, column 7
C3/6D42:	B038    	; Row 1, column 8
C3/6D44:	C038    	; Row 1, column 9
C3/6D46:	D038    	; Row 1, column 10
C3/6D48:	3848    	; Row 2, column 1
C3/6D4A:	4848    	; Row 2, column 2
C3/6D4C:	5848    	; Row 2, column 3
C3/6D4E:	6848    	; Row 2, column 4
C3/6D50:	7848    	; Row 2, column 5
C3/6D52:	9048    	; Row 2, column 6
C3/6D54:	A048    	; Row 2, column 7
C3/6D56:	B048    	; Row 2, column 8
C3/6D58:	C048    	; Row 2, column 9
C3/6D5A:	D048    	; Row 2, column 10
C3/6D5C:	3858    	; Row 3, column 1
C3/6D5E:	4858    	; Row 3, column 2
C3/6D60:	5858    	; Row 3, column 3
C3/6D62:	6858    	; Row 3, column 4
C3/6D64:	7858    	; Row 3, column 5
C3/6D66:	9058    	; Row 3, column 6
C3/6D68:	A058    	; Row 3, column 7
C3/6D6A:	B058    	; Row 3, column 8
C3/6D6C:	C058    	; Row 3, column 9
C3/6D6E:	D058    	; Row 3, column 10
C3/6D70:	3868    	; Row 4, column 1
C3/6D72:	4868    	; Row 4, column 2
C3/6D74:	5868    	; Row 4, column 3
C3/6D76:	6868    	; Row 4, column 4
C3/6D78:	7868    	; Row 4, column 5
C3/6D7A:	9068    	; Row 4, column 6
C3/6D7C:	A068    	; Row 4, column 7
C3/6D7E:	B068    	; Row 4, column 8
C3/6D80:	C068    	; Row 4, column 9
C3/6D82:	D068    	; Row 4, column 10
C3/6D84:	3878    	; Row 5, column 1
C3/6D86:	4878    	; Row 5, column 2
C3/6D88:	5878    	; Row 5, column 3
C3/6D8A:	6878    	; Row 5, column 4
C3/6D8C:	7878    	; Row 5, column 5
C3/6D8E:	9078    	; Row 5, column 6
C3/6D90:	A078    	; Row 5, column 7
C3/6D92:	B078    	; Row 5, column 8
C3/6D94:	C078    	; Row 5, column 9
C3/6D96:	D078    	; Row 5, column 10
C3/6D98:	3888    	; Row 6, column 1
C3/6D9A:	4888    	; Row 6, column 2
C3/6D9C:	5888    	; Row 6, column 3
C3/6D9E:	6888    	; Row 6, column 4
C3/6DA0:	7888    	; Row 6, column 5
C3/6DA2:	9088    	; Row 6, column 6
C3/6DA4:	A088    	; Row 6, column 7
C3/6DA6:	B088    	; Row 6, column 8
C3/6DA8:	C088    	; Row 6, column 9
C3/6DAA:	D088    	; Row 6, column 10
C3/6DAC:	3898    	; Row 7, column 1
C3/6DAE:	4898    	; Row 7, column 2
C3/6DB0:	5898    	; Row 7, column 3
C3/6DB2:	6898    	; Row 7, column 4
C3/6DB4:	7898    	; Row 7, column 5
C3/6DB6:	9098    	; Row 7, column 6
C3/6DB8:	A098    	; Row 7, column 7
C3/6DBA:	B098    	; Row 7, column 8
C3/6DBC:	C098    	; Row 7, column 9
C3/6DBE:	D098    	; Row 7, column 10
C3/6DC0:	38A8    	; Row 8, column 1
C3/6DC2:	48A8    	; Row 8, column 2
C3/6DC4:	58A8    	; Row 8, column 3
C3/6DC6:	68A8    	; Row 8, column 4
C3/6DC8:	78A8    	; Row 8, column 5
C3/6DCA:	90A8    	; Row 8, column 6
C3/6DCC:	A0A8    	; Row 8, column 7
C3/6DCE:	B0A8    	; Row 8, column 8
C3/6DD0:	C0A8    	; Row 8, column 9
C3/6DD2:	D0A8    	; Row 8, column 10
C3/6DD4:	38B8    	; Row 9, column 1
C3/6DD6:	48B8    	; Row 9, column 2
C3/6DD8:	58B8    	; Row 9, column 3
C3/6DDA:	68B8    	; Row 9, column 4
C3/6DDC:	78B8    	; Row 9, column 5
C3/6DDE:	90B8    	; Row 9, column 6
C3/6DE0:	A0B8    	; Row 9, column 7
C3/6DE2:	B0B8    	; Row 9, column 8
C3/6DE4:	C0B8    	; Row 9, column 9
C3/6DE6:	D0B8    	; Row 9, column 10
C3/6DE8:	38C8    	; Row 10, column 1
C3/6DEA:	48C8    	; Row 10, column 2
C3/6DEC:	58C8    	; Row 10, column 3
C3/6DEE:	68C8    	; Row 10, column 4
C3/6DF0:	78C8    	; Row 10, column 5
C3/6DF2:	90C8    	; Row 10, column 6
C3/6DF4:	A0C8    	; Row 10, column 7
C3/6DF6:	B0C8    	; Row 10, column 8
C3/6DF8:	C0C8    	; Row 10, column 9
C3/6DFA:	D0C8    	; Row 10, column 10

Create portrait for actor naming menu
C3/6DFC:	A903    	LDA #$03       ; Min slot: 24
C3/6DFE:	A07D0B  	LDY #$0B7D     ; C3/0B7D
C3/6E01:	20DE11  	JSR $11DE      ; Queue OAM fn
C3/6E04:	8B      	PHB            ; Save DB
C3/6E05:	A97E    	LDA #$7E       ; Bank: 7E
C3/6E07:	48      	PHA            ; Put on stack
C3/6E08:	AB      	PLB            ; Set DB to 7E
C3/6E09:	C220    	REP #$20       ; 16-bit A
C3/6E0B:	A9F70B  	LDA #$0BF7     ; Anim table ptr
C3/6E0E:	9DC932  	STA $32C9,X    ; Set sprite's
C3/6E11:	A91000  	LDA #$0010     ; X: 16
C3/6E14:	9DCA33  	STA $33CA,X    ; Set sprite's
C3/6E17:	A91000  	LDA #$0010     ; Y: 16
C3/6E1A:	9D4A34  	STA $344A,X    ; Set sprite's
C3/6E1D:	E220    	SEP #$20       ; 8-bit A
C3/6E1F:	A9C3    	LDA #$C3       ; Bank: C3
C3/6E21:	9DCA35  	STA $35CA,X    ; Set ptr HB
C3/6E24:	207112  	JSR $1271      ; Set pose timer
C3/6E27:	AB      	PLB            ; Restore DB
C3/6E28:	60      	RTS

Draw actor naming menu
C3/6E29:	20BC71  	JSR $71BC      ; Clear BG2 map A
C3/6E2C:	A08C6E  	LDY #$6E8C     ; C3/6E8C
C3/6E2F:	20C403  	JSR $03C4      ; Draw name window
C3/6E32:	A0906E  	LDY #$6E90     ; C3/6E90
C3/6E35:	20C403  	JSR $03C4      ; Draw font window
C3/6E38:	A0946E  	LDY #$6E94     ; C3/6E94
C3/6E3B:	20C403  	JSR $03C4      ; Draw face window
C3/6E3E:	20BD0E  	JSR $0EBD      ; Upload windows
C3/6E41:	20A971  	JSR $71A9      ; Clear BG1 map A
C3/6E44:	20AD71  	JSR $71AD      ; Clear BG1 map B
C3/6E47:	20B271  	JSR $71B2      ; Clear BG1 map C
C3/6E4A:	A920    	LDA #$20       ; Palette 0
C3/6E4C:	8529    	STA $29        ; Color: User's
C3/6E4E:	A25B38  	LDX #$385B     ; Tilemap ptr
C3/6E51:	A0C8E8  	LDY #$E8C8     ; D8/E8C8
C3/6E54:	84E7    	STY $E7        ; Set src LBs
C3/6E56:	A9D8    	LDA #$D8       ; Bank: D8
C3/6E58:	85E9    	STA $E9        ; Set src HB
C3/6E5A:	A910    	LDA #$10       ; Text rows: 16
C3/6E5C:	85E5    	STA $E5        ; Set for options
C3/6E5E:	20E66E  	JSR $6EE6      ; Draw BG1a options
C3/6E61:	A25B48  	LDX #$485B     ; Tilemap ptr
C3/6E64:	A068E9  	LDY #$E968     ; D8/E968
C3/6E67:	84E7    	STY $E7        ; Set src LBs
C3/6E69:	A9D8    	LDA #$D8       ; Bank: D8
C3/6E6B:	85E9    	STA $E9        ; Set src HB
C3/6E6D:	A904    	LDA #$04       ; Text rows: 4
C3/6E6F:	85E5    	STA $E5        ; Set for options
C3/6E71:	20E66E  	JSR $6EE6      ; Draw BG1c options
C3/6E74:	20866E  	JSR $6E86      ; Draw actor name
C3/6E77:	20930E  	JSR $0E93      ; Upload BG1 A+B
C3/6E7A:	20A10E  	JSR $0EA1      ; Upload BG1 B+C
C3/6E7D:	20AF0E  	JSR $0EAF      ; Upload BG1 C+D
C3/6E80:	20D071  	JSR $71D0      ; Clear BG3 map A
C3/6E83:	4CD90E  	JMP $0ED9      ; Upload BG3 A+B

Draw actor name for actor naming menu
C3/6E86:	A0E940  	LDY #$40E9     ; Text position
C3/6E89:	4C6A35  	JMP $356A      ; Draw actor name

Window layout for actor naming menu
C3/6E8C:	9B581202	; 20x04 at $589B (Name)
C3/6E90:	97591614	; 24x22 at $5997 (Options)
C3/6E94:	8B580505	; 07x07 at $588B (Portrait)

Upload portrait for actor naming menu
C3/6E98:	A467    	LDY $67        ; Actor's address
C3/6E9A:	7B      	TDC            ; Clear A
C3/6E9B:	B90100  	LDA $0001,Y    ; Graphics set
C3/6E9E:	C220    	REP #$20       ; 16-bit A
C3/6EA0:	0A      	ASL A          ; Double it
C3/6EA1:	AA      	TAX            ; Index it
C3/6EA2:	A90026  	LDA #$2600     ; $2600
C3/6EA5:	8D1621  	STA $2116      ; Set VRAM ptr
C3/6EA8:	BFAF76C3	LDA $C376AF,X  ; GFX pointer
C3/6EAC:	AA      	TAX            ; Index it
C3/6EAD:	209477  	JSR $7794      ; Load portrait
C3/6EB0:	E220    	SEP #$20       ; 8-bit A
C3/6EB2:	60      	RTS

Load portrait colors for actor naming menu
C3/6EB3:	A910    	LDA #$10       ; Colors: 16
C3/6EB5:	85E3    	STA $E3        ; Set counter
C3/6EB7:	A467    	LDY $67        ; Actor's address
C3/6EB9:	7B      	TDC            ; Clear A
C3/6EBA:	B90100  	LDA $0001,Y    ; Graphics set
C3/6EBD:	AA      	TAX            ; Index it
C3/6EBE:	BF9476C3	LDA $C37694,X  ; Palette number
C3/6EC2:	C220    	REP #$20       ; 16-bit A
C3/6EC4:	0A      	ASL A          ; x2
C3/6EC5:	0A      	ASL A          ; x4
C3/6EC6:	0A      	ASL A          ; x8
C3/6EC7:	0A      	ASL A          ; x16
C3/6EC8:	0A      	ASL A          ; x32
C3/6EC9:	AA      	TAX            ; Index it
C3/6ECA:	A400    	LDY $00        ; RAM index: 0
C3/6ECC:	C220    	REP #$20       ; 16-bit A
C3/6ECE:	DA      	PHX            ; Save ROM index
C3/6ECF:	BF6058ED	LDA $ED5860,X  ; Portrait color
C3/6ED3:	BB      	TYX            ; RAM index
C3/6ED4:	9F49317E	STA $7E3149,X  ; To OBJ pal 0
C3/6ED8:	E220    	SEP #$20       ; 8-bit A
C3/6EDA:	FA      	PLX            ; ROM index
C3/6EDB:	E8      	INX            ; ROM index +1
C3/6EDC:	E8      	INX            ; ROM index +1
C3/6EDD:	C8      	INY            ; RAM index +1
C3/6EDE:	C8      	INY            ; RAM index +1
C3/6EDF:	C6E3    	DEC $E3        ; One less color
C3/6EE1:	D0E9    	BNE $6ECC      ; Loop till last
C3/6EE3:	E220    	SEP #$20       ; 8-bit A
C3/6EE5:	60      	RTS

Draw options in actor naming menu
C3/6EE6:	86EB    	STX $EB        ; Set dst LBs
C3/6EE8:	A97E    	LDA #$7E       ; Bank: 7E
C3/6EEA:	85ED    	STA $ED        ; Set dst HB
C3/6EEC:	A400    	LDY $00        ; ROM index: 0
C3/6EEE:	A90A    	LDA #$0A       ; Columns: 10
C3/6EF0:	85E6    	STA $E6        ; Set counter
C3/6EF2:	A600    	LDX $00        ; RAM index: 0
C3/6EF4:	B7E7    	LDA [$E7],Y    ; Character
C3/6EF6:	85E0    	STA $E0        ; Memorize it
C3/6EF8:	5A      	PHY            ; Save ROM index

Fork: Character without diacritic
C3/6EF9:	C953    	CMP #$53       ; Normal char?
C3/6EFB:	9006    	BCC $6F03      ; Branch if not
C3/6EFD:	A9FF    	LDA #$FF       ; Space char
C3/6EFF:	85E1    	STA $E1        ; Set diacritic
C3/6F01:	8020    	BRA $6F23      ; Update tilemap

Fork: Character with handakuten
C3/6F03:	C949    	CMP #$49       ; Bogus char?
C3/6F05:	900D    	BCC $6F14      ; Branch if not
C3/6F07:	A952    	LDA #$52       ; Mark: []
C3/6F09:	85E1    	STA $E1        ; Set diacritic
C3/6F0B:	A5E0    	LDA $E0        ; Letter number
C3/6F0D:	18      	CLC            ; Prepare ADC
C3/6F0E:	6917    	ADC #$17       ; Get true one
C3/6F10:	85E0    	STA $E0        ; Save changes
C3/6F12:	800F    	BRA $6F23      ; Update tilemap

Fork: Character with dakuten
C3/6F14:	C920    	CMP #$20       ; Roman range?
C3/6F16:	900B    	BCC $6F23      ; Branch if not
C3/6F18:	A951    	LDA #$51       ; Mark: ["]
C3/6F1A:	85E1    	STA $E1        ; Set diacritic
C3/6F1C:	A5E0    	LDA $E0        ; Letter number
C3/6F1E:	18      	CLC            ; Prepare ADC
C3/6F1F:	6940    	ADC #$40       ; Get true one
C3/6F21:	85E0    	STA $E0        ; Save changes

Fork: Add character to tilemap
C3/6F23:	9B      	TXY            ; Base RAM index
C3/6F24:	A5E1    	LDA $E1        ; Diacritic
C3/6F26:	97EB    	STA [$EB],Y    ; Add to tilemap
C3/6F28:	C8      	INY            ; Index +1
C3/6F29:	A529    	LDA $29        ; Palette, etc.
C3/6F2B:	97EB    	STA [$EB],Y    ; Set attributes
C3/6F2D:	C220    	REP #$20       ; 16-bit A
C3/6F2F:	8A      	TXA            ; Base RAM index
C3/6F30:	18      	CLC            ; Prepare ADC
C3/6F31:	694000  	ADC #$0040     ; Go 1 row down
C3/6F34:	A8      	TAY            ; Index it
C3/6F35:	E220    	SEP #$20       ; 8-bit A
C3/6F37:	A5E0    	LDA $E0        ; Base character
C3/6F39:	97EB    	STA [$EB],Y    ; Add to tilemap
C3/6F3B:	C8      	INY            ; Index +1
C3/6F3C:	A529    	LDA $29        ; Palette, etc.
C3/6F3E:	97EB    	STA [$EB],Y    ; Set attributes
C3/6F40:	E8      	INX            ; RAM index +1
C3/6F41:	E8      	INX            ; RAM index +1
C3/6F42:	E8      	INX            ; RAM index +1
C3/6F43:	E8      	INX            ; RAM index +1
C3/6F44:	7A      	PLY            ; ROM index
C3/6F45:	C8      	INY            ; ROM index +1
C3/6F46:	A5E6    	LDA $E6        ; Columns left
C3/6F48:	C906    	CMP #$06       ; At separator?
C3/6F4A:	D002    	BNE $6F4E      ; Branch if not
C3/6F4C:	E8      	INX            ; RAM index +1
C3/6F4D:	E8      	INX            ; RAM index +1
C3/6F4E:	C6E6    	DEC $E6        ; One less column
C3/6F50:	D0A2    	BNE $6EF4      ; Loop till last
C3/6F52:	C220    	REP #$20       ; 16-bit A
C3/6F54:	A5EB    	LDA $EB        ; Tilemap ptr
C3/6F56:	18      	CLC            ; Prepare ADC
C3/6F57:	698000  	ADC #$0080     ; +2 rows down
C3/6F5A:	85EB    	STA $EB        ; Save changes
C3/6F5C:	E220    	SEP #$20       ; 8-bit A
C3/6F5E:	C6E5    	DEC $E5        ; One less row
C3/6F60:	D08C    	BNE $6EEE      ; Loop till last
C3/6F62:	60      	RTS

Set to condense text in actor naming menu
C3/6F63:	A600    	LDX $00        ; Index: 0
C3/6F65:	BFBD6FC3	LDA $C36FBD,X  ; BG1 V-Pan data
C3/6F69:	9FC99B7E	STA $7E9BC9,X  ; Save in RAM
C3/6F6D:	E8      	INX            ; Index +1
C3/6F6E:	E00D00  	CPX #$000D     ; End of table?
C3/6F71:	D0F2    	BNE $6F65      ; Loop if not
C3/6F73:	A902    	LDA #$02       ; 1Rx2B to PPU
C3/6F75:	8D5043  	STA $4350      ; Set CH5 mode
C3/6F78:	A90E    	LDA #$0E       ; $210E
C3/6F7A:	8D5143  	STA $4351      ; To BG1 V-Scroll
C3/6F7D:	A0C99B  	LDY #$9BC9     ; 7E/9BC9
C3/6F80:	8C5243  	STY $4352      ; Set CH5 src LBs
C3/6F83:	A97E    	LDA #$7E       ; Bank: 7E
C3/6F85:	8D5443  	STA $4354      ; Set CH5 src HB
C3/6F88:	A97E    	LDA #$7E       ; ...
C3/6F8A:	8D5743  	STA $4357      ; Set indir HB
C3/6F8D:	A920    	LDA #$20       ; Channel: 5
C3/6F8F:	0443    	TSB $43        ; Queue HDMA-5
C3/6F91:	A902    	LDA #$02       ; 1Rx2B to PPU
C3/6F93:	8D6043  	STA $4360      ; Set CH6 mode
C3/6F96:	A90D    	LDA #$0D       ; $210D
C3/6F98:	8D6143  	STA $4361      ; To BG1 H-Scroll
C3/6F9B:	A0B06F  	LDY #$6FB0     ; C3/6FB0
C3/6F9E:	8C6243  	STY $4362      ; Set CH6 src LBs
C3/6FA1:	A9C3    	LDA #$C3       ; Bank: C3
C3/6FA3:	8D6443  	STA $4364      ; Set CH6 src HB
C3/6FA6:	A9C3    	LDA #$C3       ; ...
C3/6FA8:	8D6743  	STA $4367      ; Set indir HB
C3/6FAB:	A940    	LDA #$40       ; Channel: 6
C3/6FAD:	0443    	TSB $43        ; Queue HDMA-6
C3/6FAF:	60      	RTS

BG1 H-Shift table for the above (merges tilemaps)
C3/6FB0:	2F 0001 	; Actor name
C3/6FB3:	50 0000 	; Upper chars
C3/6FB6:	50 0000 	; Lower chars
C3/6FB9:	10 0001 	; Blank area
C3/6FBC:	00      	; End

BG1 V-Shift table for the above (condenses text)
C3/6FBD:	2F 0000 	; Actor name
C3/6FC0:	50 D0FF 	; Upper chars
C3/6FC3:	50 D0FF 	; Lower chars
C3/6FC6:	10 0000 	; Blank area
C3/6FC9:	00      	; End

Update large arrow in actor naming menu
C3/6FCA:	AA      	TAX            ; Index mode
C3/6FCB:	7CCE6F  	JMP ($6FCE,X)  ; Handle mode

Jump table for the above
C3/6FCE:	D26F    	; Initialize arrow
C3/6FD0:	F56F    	; Sustain arrow

Mode 0: Initialize arrow
C3/6FD2:	A62D    	LDX $2D        ; Queue index
C3/6FD4:	C220    	REP #$20       ; 16-bit A
C3/6FD6:	A91570  	LDA #$7015     ; Anim table ptr
C3/6FD9:	9DC932  	STA $32C9,X    ; Set arrow's
C3/6FDC:	A99000  	LDA #$0090     ; X: 144
C3/6FDF:	9DCA33  	STA $33CA,X    ; Set arrow's
C3/6FE2:	A92800  	LDA #$0028     ; Base Y: 40
C3/6FE5:	9D4A34  	STA $344A,X    ; Set arrow's
C3/6FE8:	E220    	SEP #$20       ; 8-bit A
C3/6FEA:	A9C3    	LDA #$C3       ; Bank: C3
C3/6FEC:	9DCA35  	STA $35CA,X    ; Set ptr HB
C3/6FEF:	FE4936  	INC $3649,X    ; Mode +1
C3/6FF2:	207112  	JSR $1271      ; Set pose timer

Mode 1: Sustain arrow
C3/6FF5:	A42D    	LDY $2D        ; Queue index
C3/6FF7:	A54A    	LDA $4A        ; On first page?
C3/6FF9:	F004    	BEQ $6FFF      ; Branch if so
C3/6FFB:	A902    	LDA #$02       ; Arrow: Up
C3/6FFD:	8001    	BRA $7000      ; Skip a line
C3/6FFF:	7B      	TDC            ; Arrow: Down
C3/7000:	AA      	TAX            ; Set index
C3/7001:	C220    	REP #$20       ; 16-bit A
C3/7003:	BF1170C3	LDA $C37011,X  ; Anim table ptr
C3/7007:	99C932  	STA $32C9,Y    ; Set arrow's
C3/700A:	E220    	SEP #$20       ; ...
C3/700C:	208C12  	JSR $128C      ; Define OAM
C3/700F:	38      	SEC            ; Set to requeue
C3/7010:	60      	RTS

Pointers for actor naming menu's large arrows
C3/7011:	1570    	; Downward arrow
C3/7013:	1E70    	; Upward arrow

Animation table for large downward arrow in actor naming menu
C3/7015:	B5C3    	; Hide arrow
C3/7017:	10      	; Frames: 16
C3/7018:	2770    	; Show arrow
C3/701A:	10      	; Frames: 16
C3/701B:	B5C3    	; Bogus...
C3/701D:	FF      	; Loop

Animation table for large upward arrow in actor naming menu
C3/701E:	B5C3    	; Hide arrow
C3/7020:	10      	; Frames: 16
C3/7021:	BBC3    	; Show arrow
C3/7023:	10      	; Frames: 16
C3/7024:	B5C3    	; Bogus...
C3/7026:	FF      	; Loop

OAM for large downward arrow in actor naming menu
C3/7027:	01      	; Tiles: 1
C3/7028:	80A0    	; 16x16, X+0, Y+160
C3/702A:	033E    	; Tile 3, pal 7, prio 3

Update small arrow in actor naming menu
C3/702C:	AA      	TAX            ; Index mode
C3/702D:	7C3070  	JMP ($7030,X)  ; Handle mode

Jump table for the above
C3/7030:	3470    	; Initialize arrow
C3/7032:	5470    	; Sustain arrow

Mode 0: Initialize arrow
C3/7034:	A62D    	LDX $2D        ; Queue index
C3/7036:	C220    	REP #$20       ; 16-bit A
C3/7038:	A94EC3  	LDA #$C34E     ; Anim table ptr
C3/703B:	9DC932  	STA $32C9,X    ; Set sprite's
C3/703E:	A92000  	LDA #$0020     ; Y: 32
C3/7041:	9D4A34  	STA $344A,X    ; Set sprite's
C3/7044:	E220    	SEP #$20       ; 8-bit A
C3/7046:	9ECB33  	STZ $33CB,X    ; No use...
C3/7049:	A9C3    	LDA #$C3       ; Bank: C3
C3/704B:	9DCA35  	STA $35CA,X    ; Set ptr HB
C3/704E:	207112  	JSR $1271      ; Set pose timer
C3/7051:	FE4936  	INC $3649,X    ; Mode +1

Mode 1: Sustain arrow
C3/7054:	A42D    	LDY $2D        ; Queue index
C3/7056:	7B      	TDC            ; Clear A
C3/7057:	A528    	LDA $28        ; Arrow's slot
C3/7059:	AA      	TAX            ; Index it
C3/705A:	BF6670C3	LDA $C37066,X  ; X position
C3/705E:	99CA33  	STA $33CA,Y    ; Set sprite's
C3/7061:	208C12  	JSR $128C      ; Define OAM
C3/7064:	38      	SEC            ; Set to requeue
C3/7065:	60      	RTS

Arrow's X positions in actor naming menu
C3/7066:	78      	; Letter 1
C3/7067:	80      	; Letter 2
C3/7068:	88      	; Letter 3
C3/7069:	90      	; Letter 4
C3/706A:	98      	; Letter 5
C3/706B:	A0      	; Letter 6

Reset menu or ending variables
C3/706C:	22F3CDD4	JSL $D4CDF3    ; Reset many vars
C3/7070:	207670  	JSR $7076      ; Reset BGs' X/Y
C3/7073:	4CD9B0  	JMP $B0D9      ; Clear VWF GFX

Reset BG positions
C3/7076:	A400    	LDY $00        ; Clear Y
C3/7078:	8435    	STY $35        ; BG1 X-Loc: 0
C3/707A:	8439    	STY $39        ; BG2 X-Loc: 0
C3/707C:	843D    	STY $3D        ; BG3 X-Loc: 0
C3/707E:	8437    	STY $37        ; BG1 Y-Loc: 0
C3/7080:	843B    	STY $3B        ; BG2 Y-Loc: 0
C3/7082:	843F    	STY $3F        ; BG3 Y-Loc: 0
C3/7084:	8441    	STY $41        ; List V-Spd: 0
C3/7086:	60      	RTS

Get party info from SRAM block
C3/7087:	2200CAD4	JSL $D4CA00    ; Clear all info
C3/708B:	7B      	TDC            ; Clear A
C3/708C:	AA      	TAX            ; 1st: Terra
C3/708D:	9B      	TXY            ; ...
C3/708E:	BD5018  	LDA $1850,X    ; Party info
C3/7091:	2940    	AND #$40       ; Object's off?
C3/7093:	F01E    	BEQ $70B3      ; Skip if so
C3/7095:	BD5018  	LDA $1850,X    ; Party info
C3/7098:	2907    	AND #$07       ; Get party
C3/709A:	CD6D1A  	CMP $1A6D      ; Active party?
C3/709D:	D014    	BNE $70B3      ; Skip if not
C3/709F:	BD5018  	LDA $1850,X    ; Party info
C3/70A2:	48      	PHA            ; Memorize it
C3/70A3:	2918    	AND #$18       ; Roster slot
C3/70A5:	85E0    	STA $E0        ; ...
C3/70A7:	4A      	LSR A          ; Put in b2-b3
C3/70A8:	4A      	LSR A          ; Put in b1-b2
C3/70A9:	4A      	LSR A          ; Now 0-3
C3/70AA:	A8      	TAY            ; Index it
C3/70AB:	68      	PLA            ; Party info
C3/70AC:	997500  	STA $0075,Y    ; Set member's
C3/70AF:	8A      	TXA            ; Actor slot
C3/70B0:	996900  	STA $0069,Y    ; Set member's
C3/70B3:	E8      	INX            ; Actor slot +1
C3/70B4:	E01000  	CPX #$0010     ; Done 16 chars?
C3/70B7:	D0D5    	BNE $708E      ; Loop if not
C3/70B9:	A400    	LDY $00        ; 1st: Member 1
C3/70BB:	7B      	TDC            ; Clear A
C3/70BC:	B96900  	LDA $0069,Y    ; Actor
C3/70BF:	C9FF    	CMP #$FF       ; Empty slot?
C3/70C1:	F011    	BEQ $70D4      ; Skip if so
C3/70C3:	0A      	ASL A          ; Double it
C3/70C4:	AA      	TAX            ; Index it
C3/70C5:	C220    	REP #$20       ; 16-bit A
C3/70C7:	BFDB70C3	LDA $C370DB,X  ; Actor's address
C3/70CB:	48      	PHA            ; Memorize it
C3/70CC:	98      	TYA            ; Member slot
C3/70CD:	0A      	ASL A          ; Double it
C3/70CE:	AA      	TAX            ; Index it
C3/70CF:	68      	PLA            ; SRAM address
C3/70D0:	956D    	STA $6D,X      ; Set member's
C3/70D2:	E220    	SEP #$20       ; 8-bit A
C3/70D4:	C8      	INY            ; Member slot +1
C3/70D5:	C00400  	CPY #$0004     ; Done 4 slots?
C3/70D8:	D0E1    	BNE $70BB      ; Loop if not
C3/70DA:	60      	RTS

SRAM block addresses for actor data
C3/70DB:	0016    	; 00: Terra
C3/70DD:	2516    	; 01: Locke
C3/70DF:	4A16    	; 02: Cyan
C3/70E1:	6F16    	; 03: Shadow
C3/70E3:	9416    	; 04: Edgar
C3/70E5:	B916    	; 05: Sabin
C3/70E7:	DE16    	; 06: Celes
C3/70E9:	0317    	; 07: Strago
C3/70EB:	2817    	; 08: Relm
C3/70ED:	4D17    	; 09: Setzer
C3/70EF:	7217    	; 0A: Mog
C3/70F1:	9717    	; 0B: Gau
C3/70F3:	BC17    	; 0C: Gogo
C3/70F5:	E117    	; 0D: Umaro
C3/70F7:	0618    	; 0E: Guest 1
C3/70F9:	2B18    	; 0F: Guest 2

Copy party info to SRAM block
C3/70FB:	7B      	TDC            ; Clear A
C3/70FC:	AA      	TAX            ; 1st: Member 1
C3/70FD:	A8      	TAY            ; ...
C3/70FE:	B569    	LDA $69,X      ; Actor in slot
C3/7100:	3012    	BMI $7114      ; Skip if nobody
C3/7102:	A8      	TAY            ; Index it
C3/7103:	B575    	LDA $75,X      ; Party info
C3/7105:	29E7    	AND #$E7       ; Clear roster slot
C3/7107:	85E0    	STA $E0        ; Memorize info
C3/7109:	7B      	TDC            ; ...
C3/710A:	8A      	TXA            ; Member slot
C3/710B:	0A      	ASL A          ; Put in b1-b2
C3/710C:	0A      	ASL A          ; Put in b2-b3
C3/710D:	0A      	ASL A          ; Put in b3-b4
C3/710E:	18      	CLC            ; ...
C3/710F:	65E0    	ADC $E0        ; Add saved info
C3/7111:	995018  	STA $1850,Y    ; Put in SRAM area
C3/7114:	E8      	INX            ; Member slot +1
C3/7115:	E00400  	CPX #$0004     ; Done 4 slots?
C3/7118:	D0E4    	BNE $70FE      ; Loop if not
C3/711A:	60      	RTS

Memorize current party (useless)
C3/711B:	C220    	REP #$20       ; 16-bit A
C3/711D:	A569    	LDA $69        ; Members 1 and 2
C3/711F:	8F89AA7E	STA $7EAA89    ; Memorize them
C3/7123:	A56B    	LDA $6B        ; Members 3 and 4
C3/7125:	8F8BAA7E	STA $7EAA8B    ; Memorize them
C3/7129:	E220    	SEP #$20       ; 8-bit A
C3/712B:	60      	RTS

Draw multiple strings without diacritics
C3/712C:	86F1    	STX $F1        ; Set ptrs loc
C3/712E:	84EF    	STY $EF        ; Set counter
C3/7130:	A9C3    	LDA #$C3       ; Bank: C3
C3/7132:	85F3    	STA $F3        ; Set loc HB
C3/7134:	A400    	LDY $00        ; Index: 0
C3/7136:	C220    	REP #$20       ; 16-bit A
C3/7138:	B7F1    	LDA [$F1],Y    ; Text pointer
C3/713A:	85E7    	STA $E7        ; Set src LBs
C3/713C:	5A      	PHY            ; Save index
C3/713D:	E220    	SEP #$20       ; 8-bit A
C3/713F:	A9C3    	LDA #$C3       ; Bank: C3
C3/7141:	85E9    	STA $E9        ; Set src HB
C3/7143:	20FF02  	JSR $02FF      ; Draw string
C3/7146:	7A      	PLY            ; String index
C3/7147:	C8      	INY            ; Index +1
C3/7148:	C8      	INY            ; Index +1
C3/7149:	C4EF    	CPY $EF        ; None left?
C3/714B:	D0E9    	BNE $7136      ; Loop if not
C3/714D:	60      	RTS

Draw multiple strings with diacritics but without Roman characters
C3/714E:	86F1    	STX $F1        ; Set ptrs loc
C3/7150:	84EF    	STY $EF        ; Set counter
C3/7152:	A9C3    	LDA #$C3       ; Bank: C3
C3/7154:	85F3    	STA $F3        ; Set loc HB
C3/7156:	A400    	LDY $00        ; Index: 0
C3/7158:	C220    	REP #$20       ; 16-bit A
C3/715A:	B7F1    	LDA [$F1],Y    ; Text pointer
C3/715C:	85E7    	STA $E7        ; Set src LBs
C3/715E:	5A      	PHY            ; Save index
C3/715F:	E220    	SEP #$20       ; 8-bit A
C3/7161:	A9C3    	LDA #$C3       ; Bank: C3
C3/7163:	85E9    	STA $E9        ; Set src HB
C3/7165:	202C03  	JSR $032C      ; Draw string
C3/7168:	7A      	PLY            ; String index
C3/7169:	C8      	INY            ; Index +1
C3/716A:	C8      	INY            ; Index +1
C3/716B:	C4EF    	CPY $EF        ; None left?
C3/716D:	D0E9    	BNE $7158      ; Loop if not
C3/716F:	60      	RTS

Set Window 1 positions per scanline
C3/7170:	A901    	LDA #$01       ; 2Rx1B to PPU
C3/7172:	8D2043  	STA $4320      ; Set CH2 mode
C3/7175:	A926    	LDA #$26       ; $2126, $2127
C3/7177:	8D2143  	STA $4321      ; To Win 1 L+R
C3/717A:	A08F71  	LDY #$718F     ; C3/718F
C3/717D:	8C2243  	STY $4322      ; Set src LBs
C3/7180:	A9C3    	LDA #$C3       ; Bank: C3
C3/7182:	8D2443  	STA $4324      ; Set src HB
C3/7185:	A9C3    	LDA #$C3       ; ...
C3/7187:	8D2743  	STA $4327      ; Set indir HB
C3/718A:	A904    	LDA #$04       ; Channel: 2
C3/718C:	0443    	TSB $43        ; Queue HDMA-2
C3/718E:	60      	RTS

Window 1 positions per scanline
C3/718F:	07 FF 00	; No range
C3/7192:	78 08 F7	; 8, 247
C3/7195:	58 08 F7	; 8, 247
C3/7198:	08 FF 00	; No range
C3/719B:	00      	; End

Set global Window 1 positions
C3/719C:	A904    	LDA #$04       ; Channel: 2
C3/719E:	1443    	TRB $43        ; Halt Win1 HDMA
C3/71A0:	9C2621  	STZ $2126      ; Win1-L: 0
C3/71A3:	A9FF    	LDA #$FF       ; Win1-R: 255
C3/71A5:	8D2721  	STA $2127      ; Set register
C3/71A8:	60      	RTS

Clear BG1 tilemap A
C3/71A9:	A600    	LDX $00        ; 7E/3849
C3/71AB:	8035    	BRA $71E2      ; Clear map

Clear BG1 tilemap B
C3/71AD:	A20008  	LDX #$0800     ; 7E/4049
C3/71B0:	8030    	BRA $71E2      ; Clear map

Clear BG1 tilemap C
C3/71B2:	A20010  	LDX #$1000     ; 7E/4849
C3/71B5:	802B    	BRA $71E2      ; Clear map

Clear BG1 tilemap D
C3/71B7:	A20018  	LDX #$1800     ; 7E/5049
C3/71BA:	8026    	BRA $71E2      ; Clear map

Clear BG2 tilemap A
C3/71BC:	A20020  	LDX #$2000     ; 7E/5849
C3/71BF:	8021    	BRA $71E2      ; Clear map

Clear BG2 tilemap B
C3/71C1:	A20028  	LDX #$2800     ; 7E/6049
C3/71C4:	801C    	BRA $71E2      ; Clear map

Clear BG2 tilemap C
C3/71C6:	A20030  	LDX #$3000     ; 7E/6849
C3/71C9:	8017    	BRA $71E2      ; Clear map

Clear BG2 tilemap D (unused)
C3/71CB:	A20038  	LDX #$3800     ; 7E/7049
C3/71CE:	8012    	BRA $71E2      ; Clear map

Clear BG3 tilemap A
C3/71D0:	A20040  	LDX #$4000     ; 7E/7849
C3/71D3:	800D    	BRA $71E2      ; Clear map

Clear BG3 tilemap B
C3/71D5:	A20048  	LDX #$4800     ; 7E/8049
C3/71D8:	8008    	BRA $71E2      ; Clear map

Clear BG3 tilemap C
C3/71DA:	A20050  	LDX #$5000     ; 7E/8849
C3/71DD:	8003    	BRA $71E2      ; Clear map

Clear BG3 tilemap D
C3/71DF:	A20058  	LDX #$5800     ; 7E/9049
C3/71E2:	C220    	REP #$20       ; 16-bit A
C3/71E4:	7B      	TDC            ; Clear A
C3/71E5:	A00002  	LDY #$0200     ; Tiles: 1024
C3/71E8:	9F49387E	STA $7E3849,X  ; Clear tile
C3/71EC:	E8      	INX            ; Index +1
C3/71ED:	E8      	INX            ; Index +1
C3/71EE:	9F49387E	STA $7E3849,X  ; Clear tile
C3/71F2:	E8      	INX            ; Index +1
C3/71F3:	E8      	INX            ; Index +1
C3/71F4:	88      	DEY            ; 2 less tiles
C3/71F5:	D0F1    	BNE $71E8      ; Loop till 0
C3/71F7:	E220    	SEP #$20       ; 8-bit A
C3/71F9:	60      	RTS

Load graphics, colors, enemy, and prize for Colosseum matchup
C3/71FA:	20A477  	JSR $77A4      ; ...
C3/71FD:	20A772  	JSR $72A7      ; BG3 font GFX
C3/7200:	207C73  	JSR $737C      ; Font colors
C3/7203:	209D73  	JSR $739D      ; ...
C3/7206:	20FB75  	JSR $75FB      ; Cursor/VS GFX
C3/7209:	205B74  	JSR $745B      ; Actor colors
C3/720C:	201874  	JSR $7418      ; Cursor/VS colors
C3/720F:	201676  	JSR $7616      ; ...
C3/7212:	207D74  	JSR $747D      ; Actor sprites
C3/7215:	20B3B8  	JSR $B8B3      ; Prize/enemy data
C3/7218:	4CB8BC  	JMP $BCB8      ; Arena

Load non-skin graphics and colors for menu
C3/721B:	7B      	TDC            ; Clear A
C3/721C:	AD0002  	LDA $0200      ; Menu
C3/721F:	0A      	ASL A          ; Double it
C3/7220:	AA      	TAX            ; Index it
C3/7221:	7C2472  	JMP ($7224,X)  ; Load data

Jump table for the above
C3/7224:	7D72    	; Main menu
C3/7226:	9872    	; Actor naming
C3/7228:	7D72    	; Load menu
C3/722A:	6272    	; Shop
C3/722C:	4472    	; Lineup
C3/722E:	4472    	; Bogus...
C3/7230:	3872    	; SwdTech naming
C3/7232:	7D72    	; Colosseum
C3/7234:	4472    	; Final battle lineup
C3/7236:	4472    	; Bogus...

Load graphics and colors for SwdTech naming menu
C3/7238:	20CB72  	JSR $72CB      ; BG1 font GFX
C3/723B:	207C73  	JSR $737C      ; Font colors
C3/723E:	20FB75  	JSR $75FB      ; Cursor/arrow GFX
C3/7241:	4C1874  	JMP $7418      ; Their colors

Load graphics and colors for Lineup or final battle menu
C3/7244:	20A477  	JSR $77A4      ; Blank portrait
C3/7247:	20A772  	JSR $72A7      ; BG3 font GFX
C3/724A:	20CB72  	JSR $72CB      ; BG1 font GFX
C3/724D:	207C73  	JSR $737C      ; Font colors
C3/7250:	209D73  	JSR $739D      ; Portrait colors...
C3/7253:	20FB75  	JSR $75FB      ; Cursor/icon GFX
C3/7256:	205B74  	JSR $745B      ; Actor colors
C3/7259:	201874  	JSR $7418      ; Cursor/icon pals
C3/725C:	201676  	JSR $7616      ; Portrait GFX...
C3/725F:	4C7D74  	JMP $747D      ; Actor sprites

Load graphics and colors for shop menu
C3/7262:	20A772  	JSR $72A7      ; BG3 font GFX
C3/7265:	20CB72  	JSR $72CB      ; BG1 font GFX
C3/7268:	207C73  	JSR $737C      ; Font colors
C3/726B:	209D73  	JSR $739D      ; Portrait colors...
C3/726E:	20FB75  	JSR $75FB      ; Cursor/icon GFX
C3/7271:	205B74  	JSR $745B      ; Actor colors
C3/7274:	201874  	JSR $7418      ; Cursor/icon pals
C3/7277:	201676  	JSR $7616      ; Portrait GFX...
C3/727A:	4C0D75  	JMP $750D      ; Actor sprites

Load graphics and colors for Load, Main, or Colosseum menu
C3/727D:	20A772  	JSR $72A7      ; BG3 font GFX
C3/7280:	20CB72  	JSR $72CB      ; BG1 font GFX
C3/7283:	207C73  	JSR $737C      ; Font colors
C3/7286:	20FB75  	JSR $75FB      ; Cursor/icon GFX
C3/7289:	201676  	JSR $7616      ; Portrait GFX
C3/728C:	209D73  	JSR $739D      ; Portrait colors
C3/728F:	207D74  	JSR $747D      ; Actor sprites
C3/7292:	201874  	JSR $7418      ; Cursor/icon pals
C3/7295:	4CF473  	JMP $73F4      ; Grayscale pal

Load graphics and colors for actor naming menu
C3/7298:	20A772  	JSR $72A7      ; Blank BG tile
C3/729B:	20CB72  	JSR $72CB      ; BG1 font GFX
C3/729E:	207C73  	JSR $737C      ; Font colors
C3/72A1:	20FB75  	JSR $75FB      ; Cursor GFX
C3/72A4:	4C1874  	JMP $7418      ; Cursor colors

Upload BG3 font graphics and erase VWF description
C3/72A7:	C220    	REP #$20       ; 16-bit A
C3/72A9:	A00060  	LDY #$6000     ; $6000
C3/72AC:	8C1621  	STY $2116      ; Set VRAM ptr
C3/72AF:	A600    	LDX $00        ; Index: 0
C3/72B1:	BFC07FC4	LDA $C47FC0,X  ; Font graphics
C3/72B5:	8D1821  	STA $2118      ; Save in VRAM
C3/72B8:	E8      	INX            ; Index +1
C3/72B9:	E8      	INX            ; Index +1
C3/72BA:	E00010  	CPX #$1000     ; 256th tile?
C3/72BD:	D0F2    	BNE $72B1      ; Loop if not
C3/72BF:	8D1821  	STA $2118      ; Clear desc GFX
C3/72C2:	E8      	INX            ; Index +1
C3/72C3:	E00014  	CPX #$1400     ; 128th tile?
C3/72C6:	D0F7    	BNE $72BF      ; Loop if not
C3/72C8:	E220    	SEP #$20       ; 8-bit A
C3/72CA:	60      	RTS

Upload BG1 font graphics
C3/72CB:	A00050  	LDY #$5000     ; $5000
C3/72CE:	8C1621  	STY $2116      ; Set VRAM ptr
C3/72D1:	C220    	REP #$20       ; 16-bit A
C3/72D3:	7B      	TDC            ; Clear A
C3/72D4:	AA      	TAX            ; Index: 0
C3/72D5:	A00800  	LDY #$0008     ; 8-px rows: 8
C3/72D8:	BF3073C3	LDA $C37330,X  ; Square GFX
C3/72DC:	8D1821  	STA $2118      ; Save in VRAM
C3/72DF:	88      	DEY            ; One less row
C3/72E0:	D0F6    	BNE $72D8      ; Loop till last
C3/72E2:	E8      	INX            ; Index +1
C3/72E3:	E8      	INX            ; Index +1
C3/72E4:	E02000  	CPX #$0020     ; Done 8 tiles?
C3/72E7:	D0EC    	BNE $72D5      ; Loop if not
C3/72E9:	A600    	LDX $00        ; Index: 0
C3/72EB:	A00800  	LDY #$0008     ; 8-px rows: 8
C3/72EE:	BF4080C4	LDA $C48040,X  ; Font GFX row
C3/72F2:	8D1821  	STA $2118      ; Save in VRAM
C3/72F5:	E8      	INX            ; Index +1
C3/72F6:	E8      	INX            ; Index +1
C3/72F7:	88      	DEY            ; One less row
C3/72F8:	D0F4    	BNE $72EE      ; Loop till last
C3/72FA:	9C1821  	STZ $2118      ; Planes 1C, 1D
C3/72FD:	9C1821  	STZ $2118      ; Planes 2C, 2D
C3/7300:	9C1821  	STZ $2118      ; Planes 3C, 3D
C3/7303:	9C1821  	STZ $2118      ; Planes 4C, 4D
C3/7306:	9C1821  	STZ $2118      ; Planes 5C, 5D
C3/7309:	9C1821  	STZ $2118      ; Planes 6C, 6D
C3/730C:	9C1821  	STZ $2118      ; Planes 7C, 7D
C3/730F:	9C1821  	STZ $2118      ; Planes 8C, 8D
C3/7312:	E0800F  	CPX #$0F80     ; 248th tile?
C3/7315:	D0D4    	BNE $72EB      ; Loop if not
C3/7317:	A00078  	LDY #$7800     ; $7800
C3/731A:	8C1621  	STY $2116      ; Set VRAM ptr
C3/731D:	A600    	LDX $00        ; Index: 0
C3/731F:	BF0000ED	LDA $ED0000,X  ; Skin GFX...
C3/7323:	8D1821  	STA $2118      ; Save in VRAM
C3/7326:	E8      	INX            ; Index +1
C3/7327:	E8      	INX            ; Index +1
C3/7328:	E00010  	CPX #$1000     ; Done 8 skins?
C3/732B:	D0F2    	BNE $731F      ; Loop if not
C3/732D:	E220    	SEP #$20       ; 8-bit A
C3/732F:	60      	RTS

Square BG1 tiles, encoded as a single row
C3/7330:	0000 0000	; Blank tile
C3/7334:	FF00 0000	; Config: Palette color 1
C3/7338:	00FF 0000	; Config: Palette color 2
C3/733C:	FFFF 0000	; Config: Palette color 3
C3/7340:	0000 FF00	; Config: Palette color 4
C3/7344:	FF00 FF00	; Config: Palette color 5
C3/7348:	00FF FF00	; Config: Palette color 6
C3/734C:	FFFF FF00	; Config: Palette color 7

Reset all skin colors
C3/7350:	A20800  	LDX #$0008     ; Skins left: 8
C3/7353:	86E7    	STX $E7        ; Set counter
C3/7355:	A20000  	LDX #$0000     ; ROM index: 0
C3/7358:	9B      	TXY            ; RAM index: 0
C3/7359:	C220    	REP #$20       ; 16-bit A
C3/735B:	A90700  	LDA #$0007     ; Colors left: 7
C3/735E:	85E9    	STA $E9        ; Set counter
C3/7360:	BF021CED	LDA $ED1C02,X  ; Default color
C3/7364:	99571D  	STA $1D57,Y    ; Save in options
C3/7367:	E8      	INX            ; ROM index +1
C3/7368:	E8      	INX            ; ROM index +1
C3/7369:	C8      	INY            ; RAM index +1
C3/736A:	C8      	INY            ; RAM index +1
C3/736B:	C6E9    	DEC $E9        ; One less color
C3/736D:	D0F1    	BNE $7360      ; Loop till last
C3/736F:	8A      	TXA            ; ROM index
C3/7370:	18      	CLC            ; Prepare ADC
C3/7371:	691200  	ADC #$0012     ; Reach next skin
C3/7374:	AA      	TAX            ; Reindex it
C3/7375:	C6E7    	DEC $E7        ; One less skin
C3/7377:	D0E2    	BNE $735B      ; Loop till last
C3/7379:	E220    	SEP #$20       ; 8-bit A
C3/737B:	60      	RTS

Load font and black background's colors
C3/737C:	A600    	LDX $00        ; Color index: 0
C3/737E:	8A      	TXA            ; CGRAM: $0000
C3/737F:	8D2121  	STA $2121      ; To BG color 0
C3/7382:	C220    	REP #$20       ; 16-bit A
C3/7384:	BF00E8D8	LDA $D8E800,X  ; BG color
C3/7388:	9F49307E	STA $7E3049,X  ; Save in RAM
C3/738C:	E220    	SEP #$20       ; 8-bit A
C3/738E:	8D2221  	STA $2122      ; Put LB in CGRAM
C3/7391:	EB      	XBA            ; Switch to HB
C3/7392:	8D2221  	STA $2122      ; Put HB in CGRAM
C3/7395:	E8      	INX            ; Index +1
C3/7396:	E8      	INX            ; Index +1
C3/7397:	E0A000  	CPX #$00A0     ; Done 80 colors?
C3/739A:	D0E6    	BNE $7382      ; Loop if not
C3/739C:	60      	RTS

Load portrait colors for entire party
C3/739D:	A600    	LDX $00        ; Member index: 0
C3/739F:	9B      	TXY            ; Dest index: 0
C3/73A0:	C220    	REP #$20       ; 16-bit A
C3/73A2:	B56D    	LDA $6D,X      ; Actor data index
C3/73A4:	DA      	PHX            ; Save member index
C3/73A5:	5A      	PHY            ; Save dest index
C3/73A6:	A8      	TAY            ; Actor data index
C3/73A7:	7B      	TDC            ; Clear A
C3/73A8:	E220    	SEP #$20       ; 8-bit A
C3/73AA:	A910    	LDA #$10       ; Colors: 16
C3/73AC:	85E3    	STA $E3        ; Set counter
C3/73AE:	B91400  	LDA $0014,Y    ; Status
C3/73B1:	2920    	AND #$20       ; Imp?
C3/73B3:	F004    	BEQ $73B9      ; Branch if not
C3/73B5:	A90F    	LDA #$0F       ; Use Imp data
C3/73B7:	800B    	BRA $73C4      ; Ignore actor
C3/73B9:	7B      	TDC            ; ...
C3/73BA:	B90000  	LDA $0000,Y    ; Actor
C3/73BD:	C901    	CMP #$01       ; Locke?
C3/73BF:	F003    	BEQ $73C4      ; Branch if so
C3/73C1:	B90100  	LDA $0001,Y    ; Graphics set
C3/73C4:	AA      	TAX            ; Index it
C3/73C5:	BF9476C3	LDA $C37694,X  ; Palette number
C3/73C9:	C220    	REP #$20       ; 16-bit A
C3/73CB:	0A      	ASL A          ; x2
C3/73CC:	0A      	ASL A          ; x4
C3/73CD:	0A      	ASL A          ; x8
C3/73CE:	0A      	ASL A          ; x16
C3/73CF:	0A      	ASL A          ; x32
C3/73D0:	AA      	TAX            ; Index it
C3/73D1:	7A      	PLY            ; RAM index
C3/73D2:	C220    	REP #$20       ; 16-bit A
C3/73D4:	DA      	PHX            ; Save ROM index
C3/73D5:	BF6058ED	LDA $ED5860,X  ; Portrait color
C3/73D9:	BB      	TYX            ; RAM index
C3/73DA:	9F49317E	STA $7E3149,X  ; Set color
C3/73DE:	E220    	SEP #$20       ; 8-bit A
C3/73E0:	FA      	PLX            ; ROM index
C3/73E1:	E8      	INX            ; ROM index +1
C3/73E2:	E8      	INX            ; ROM index +1
C3/73E3:	C8      	INY            ; RAM index +1
C3/73E4:	C8      	INY            ; RAM index +1
C3/73E5:	C6E3    	DEC $E3        ; One less color
C3/73E7:	D0E9    	BNE $73D2      ; Loop till last
C3/73E9:	FA      	PLX            ; Member index
C3/73EA:	E8      	INX            ; Member index +1
C3/73EB:	E8      	INX            ; Member index +1
C3/73EC:	E00800  	CPX #$0008     ; Done 4 members?
C3/73EF:	D0AF    	BNE $73A0      ; Loop if not
C3/73F1:	E220    	SEP #$20       ; 8-bit A
C3/73F3:	60      	RTS

Load grayscale actor palette
C3/73F4:	A990    	LDA #$90       ; Object color 16
C3/73F6:	8D2121  	STA $2121      ; CGRAM: $0120
C3/73F9:	A600    	LDX $00        ; Color index: 0
C3/73FB:	C220    	REP #$20       ; 16-bit A
C3/73FD:	BFA0E8D8	LDA $D8E8A0,X  ; Grayscale color
C3/7401:	9F69317E	STA $7E3169,X  ; To OBJ pal 1
C3/7405:	E220    	SEP #$20       ; 8-bit A
C3/7407:	8D2221  	STA $2122      ; Put LB in CGRAM
C3/740A:	EB      	XBA            ; Switch to HB
C3/740B:	8D2221  	STA $2122      ; Put HB in CGRAM
C3/740E:	C8      	INY            ; ...
C3/740F:	C8      	INY            ; ...
C3/7410:	E8      	INX            ; Index +1
C3/7411:	E8      	INX            ; Index +1
C3/7412:	E02000  	CPX #$0020     ; Done 16 colors?
C3/7415:	D0E4    	BNE $73FB      ; Loop if not
C3/7417:	60      	RTS

Load cursor, arrow, and icon colors
C3/7418:	A600    	LDX $00        ; Color index: 0
C3/741A:	A9EC    	LDA #$EC       ; Object color 108
C3/741C:	8D2121  	STA $2121      ; CGRAM: $01D8
C3/741F:	C220    	REP #$20       ; 16-bit A
C3/7421:	BFC0E8D8	LDA $D8E8C0,X  ; Status icon color
C3/7425:	9F21327E	STA $7E3221,X  ; Save in RAM
C3/7429:	E220    	SEP #$20       ; 8-bit A
C3/742B:	8D2221  	STA $2122      ; Put LB in CGRAM
C3/742E:	EB      	XBA            ; Switch to HB
C3/742F:	8D2221  	STA $2122      ; Put HB in CGRAM
C3/7432:	E8      	INX            ; Index +1
C3/7433:	E8      	INX            ; Index +1
C3/7434:	E00800  	CPX #$0008     ; Done 4 colors?
C3/7437:	D0E6    	BNE $741F      ; Loop if not
C3/7439:	A600    	LDX $00        ; Color index: 0
C3/743B:	A9FC    	LDA #$FC       ; Object color 124
C3/743D:	8D2121  	STA $2121      ; CGRAM: $01F8
C3/7440:	C220    	REP #$20       ; 16-bit A
C3/7442:	BFB8E8D8	LDA $D8E8B8,X  ; Cursor, etc. color
C3/7446:	9F41327E	STA $7E3241,X  ; Save in RAM
C3/744A:	E220    	SEP #$20       ; 8-bit A
C3/744C:	8D2221  	STA $2122      ; Put LB in CGRAM
C3/744F:	EB      	XBA            ; Switch to HB
C3/7450:	8D2221  	STA $2122      ; Put HB in CGRAM
C3/7453:	E8      	INX            ; Index +1
C3/7454:	E8      	INX            ; Index +1
C3/7455:	E00800  	CPX #$0008     ; Done 4 colors?
C3/7458:	D0E6    	BNE $7440      ; Loop if not
C3/745A:	60      	RTS

Load actor sprite palettes
C3/745B:	A600    	LDX $00        ; Color index: 0
C3/745D:	A9A0    	LDA #$A0       ; Object color 32
C3/745F:	8D2121  	STA $2121      ; CGRAM: $0140
C3/7462:	C220    	REP #$20       ; 16-bit A
C3/7464:	BF0063ED	LDA $ED6300,X  ; Sprite color
C3/7468:	9F89317E	STA $7E3189,X  ; Save in RAM
C3/746C:	E220    	SEP #$20       ; 8-bit A
C3/746E:	8D2221  	STA $2122      ; Put LB in CGRAM
C3/7471:	EB      	XBA            ; Switch to HB
C3/7472:	8D2221  	STA $2122      ; Put HB in CGRAM
C3/7475:	E8      	INX            ; Index +1
C3/7476:	E8      	INX            ; Index +1
C3/7477:	E0C000  	CPX #$00C0     ; Done 96 colors?
C3/747A:	D0E6    	BNE $7462      ; Loop if not
C3/747C:	60      	RTS

Upload actor sprite graphics (one pose)
C3/747D:	7B      	TDC            ; Clear A
C3/747E:	AA      	TAX            ; OBJ index: 0
C3/747F:	DA      	PHX            ; Save index
C3/7480:	C220    	REP #$20       ; 16-bit A
C3/7482:	BF95F8CF	LDA $CFF895,X  ; VRAM pointer
C3/7486:	85F3    	STA $F3        ; Memorize it
C3/7488:	8A      	TXA            ; Sprite index
C3/7489:	0A      	ASL A          ; Double it
C3/748A:	AA      	TAX            ; Index it
C3/748B:	BFC3F8CF	LDA $CFF8C3,X  ; GFX adr LBs
C3/748F:	85E7    	STA $E7        ; Memorize it
C3/7491:	BFC1F8CF	LDA $CFF8C1,X  ; GFX adr HBs
C3/7495:	85E9    	STA $E9        ; Memorize it
C3/7497:	A600    	LDX $00        ; Ptr index: 0

Fork: Head and torso
C3/7499:	BF8FF8CF	LDA $CFF88F,X  ; Tile rel ptr
C3/749D:	85EF    	STA $EF        ; Memorize it
C3/749F:	20D874  	JSR $74D8      ; Load 2 tiles
C3/74A2:	A5F3    	LDA $F3        ; VRAM pointer
C3/74A4:	18      	CLC            ; Prepare ADC
C3/74A5:	690001  	ADC #$0100     ; Go 1 row down
C3/74A8:	85F3    	STA $F3        ; Save changes
C3/74AA:	E8      	INX            ; Ptr index +1
C3/74AB:	E8      	INX            ; Ptr index +1
C3/74AC:	E00400  	CPX #$0004     ; Done 2 rows?
C3/74AF:	D0E8    	BNE $7499      ; Loop if not

Fork: Legs
C3/74B1:	A5F3    	LDA $F3        ; VRAM pointer
C3/74B3:	38      	SEC            ; Prepare SBC
C3/74B4:	E9E001  	SBC #$01E0     ; Row -2, col +2
C3/74B7:	85F3    	STA $F3        ; Save changes
C3/74B9:	BF8FF8CF	LDA $CFF88F,X  ; Tile rel ptr
C3/74BD:	85EF    	STA $EF        ; Memorize it
C3/74BF:	20D874  	JSR $74D8      ; Load leg GFX

Fork: Blank row
C3/74C2:	A5F3    	LDA $F3        ; VRAM pointer
C3/74C4:	18      	CLC            ; Prepare ADC
C3/74C5:	690001  	ADC #$0100     ; Go 1 row down
C3/74C8:	85F3    	STA $F3        ; Save changes
C3/74CA:	20FB74  	JSR $74FB      ; Blank 4th row

Fork: Handle next sprite
C3/74CD:	FA      	PLX            ; Sprite index
C3/74CE:	E8      	INX            ; Index +1
C3/74CF:	E8      	INX            ; Index +1
C3/74D0:	E02C00  	CPX #$002C     ; 22th sprite?
C3/74D3:	D0AA    	BNE $747F      ; Loop if not
C3/74D5:	E220    	SEP #$20       ; 8-bit A
C3/74D7:	60      	RTS

Upload both tiles in current row of actor sprite
C3/74D8:	18      	CLC            ; Prepare ADC
C3/74D9:	A5EF    	LDA $EF        ; Tile rel pointer
C3/74DB:	65E7    	ADC $E7        ; Add base adr LBs
C3/74DD:	85EB    	STA $EB        ; Set src LBs
C3/74DF:	7B      	TDC            ; Zero A
C3/74E0:	65E9    	ADC $E9        ; Add adr HBs + C
C3/74E2:	85ED    	STA $ED        ; Set source HBs
C3/74E4:	A4F3    	LDY $F3        ; VRAM pointer
C3/74E6:	8C1621  	STY $2116      ; Set destination
C3/74E9:	4CEC74  	JMP $74EC      ; ...
C3/74EC:	A400    	LDY $00        ; Index: 0
C3/74EE:	B7EB    	LDA [$EB],Y    ; Tile graphics
C3/74F0:	8D1821  	STA $2118      ; Save in VRAM
C3/74F3:	C8      	INY            ; Index +1
C3/74F4:	C8      	INY            ; Index +1
C3/74F5:	C04000  	CPY #$0040     ; Done 2 tiles?
C3/74F8:	D0F4    	BNE $74EE      ; Loop if not
C3/74FA:	60      	RTS

Blank both tiles under actor's feet
C3/74FB:	A4F3    	LDY $F3        ; VRAM pointer
C3/74FD:	8C1621  	STY $2116      ; Set destination
C3/7500:	A92000  	LDA #$0020     ; Tiles: 2
C3/7503:	85E7    	STA $E7        ; Set counter
C3/7505:	9C1821  	STZ $2118      ; 8 px, 2 planes
C3/7508:	C6E7    	DEC $E7        ; Counter -1
C3/750A:	D0F9    	BNE $7505      ; Loop till zero
C3/750C:	60      	RTS

Upload actor sprites for shop
C3/750D:	A00030  	LDY #$3000     ; $3000
C3/7510:	8C1621  	STY $2116      ; Set VRAM ptr
C3/7513:	64E3    	STZ $E3        ; Actor slot: 1

Fork: Load both poses for two actors
C3/7515:	A400    	LDY $00        ; Tile slot: 1
C3/7517:	E220    	SEP #$20       ; 8-bit A
C3/7519:	7B      	TDC            ; Clear A
C3/751A:	BB      	TYX            ; Tile slot
C3/751B:	BF9B75C3	LDA $C3759B,X  ; GFX ptr index
C3/751F:	0A      	ASL A          ; Double it
C3/7520:	AA      	TAX            ; Index it
C3/7521:	C220    	REP #$20       ; 16-bit A
C3/7523:	BFBB75C3	LDA $C375BB,X  ; Tile's GFX ptr
C3/7527:	C9FFFF  	CMP #$FFFF     ; Blank tile?
C3/752A:	F052    	BEQ $757E      ; Blank if so
C3/752C:	48      	PHA            ; Save pointer
C3/752D:	A9A016  	LDA #$16A0     ; GFX struct size
C3/7530:	E220    	SEP #$20       ; 8-bit A
C3/7532:	8D1B21  	STA $211B      ; Set matrix A LB
C3/7535:	EB      	XBA            ; Struct size HB
C3/7536:	8D1B21  	STA $211B      ; Set matrix A HB
C3/7539:	A5E3    	LDA $E3        ; Actor A's slot
C3/753B:	8D1C21  	STA $211C      ; Set matrix B
C3/753E:	8D1C21  	STA $211C      ; ...
C3/7541:	C220    	REP #$20       ; 16-bit A
C3/7543:	68      	PLA            ; Tile GFX ptr
C3/7544:	18      	CLC            ; Prepare ADC
C3/7545:	6D3421  	ADC $2134      ; Add product LBs
C3/7548:	85EB    	STA $EB        ; Set source LBs
C3/754A:	E220    	SEP #$20       ; 8-bit A
C3/754C:	AD3621  	LDA $2136      ; Product HB
C3/754F:	69D5    	ADC #$D5       ; Add base bank
C3/7551:	85ED    	STA $ED        ; Set source HB
C3/7553:	C221    	REP #$21       ; ...
C3/7555:	A5EB    	LDA $EB        ; ...
C3/7557:	690000  	ADC #$0000     ; ...
C3/755A:	85EB    	STA $EB        ; ...
C3/755C:	E220    	SEP #$20       ; ...
C3/755E:	A5ED    	LDA $ED        ; ...
C3/7560:	6900    	ADC #$00       ; ...
C3/7562:	85ED    	STA $ED        ; ...
C3/7564:	C220    	REP #$20       ; 16-bit A
C3/7566:	5A      	PHY            ; Save tile slot
C3/7567:	208C75  	JSR $758C      ; Load tile's GFX
C3/756A:	7A      	PLY            ; Tile slot
C3/756B:	C8      	INY            ; Tile slot +1
C3/756C:	C02000  	CPY #$0020     ; Done 32 tiles?
C3/756F:	D0A6    	BNE $7517      ; Loop if not

Fork: Handle next two actors
C3/7571:	E220    	SEP #$20       ; 8-bit A
C3/7573:	E6E3    	INC $E3        ; Actor slot +1
C3/7575:	E6E3    	INC $E3        ; Actor slot +1
C3/7577:	A5E3    	LDA $E3        ; Actor slot
C3/7579:	C910    	CMP #$10       ; Handled 16?
C3/757B:	D098    	BNE $7515      ; Loop if not
C3/757D:	60      	RTS

Fork: Create a blank tile
C3/757E:	A91000  	LDA #$0010     ; Rows: 8
C3/7581:	85E7    	STA $E7        ; Set counter
C3/7583:	9C1821  	STZ $2118      ; 8 px, 2 planes
C3/7586:	C6E7    	DEC $E7        ; Counter -1
C3/7588:	D0F9    	BNE $7583      ; Loop till zero
C3/758A:	80DF    	BRA $756B      ; Do next tile

Upload current actor sprite tile for shop
C3/758C:	A400    	LDY $00        ; Index: 0
C3/758E:	B7EB    	LDA [$EB],Y    ; 8 px, 2 planes
C3/7590:	8D1821  	STA $2118      ; Save in VRAM
C3/7593:	C8      	INY            ; Index +1
C3/7594:	C8      	INY            ; Index +1
C3/7595:	C02000  	CPY #$0020     ; Done 8 rows?
C3/7598:	D0F4    	BNE $758E      ; Loop if not
C3/759A:	60      	RTS

Indices for loading tiles from two shop actors
C3/759B:	00      	; Actor1 X1,Y1 (hands down)
C3/759C:	01      	; Actor1 X1,Y2 (hands down)
C3/759D:	04      	; Actor1 X3,Y1 (hands down)
C3/759E:	05      	; Actor1 X3,Y2 (hands down)
C3/759F:	08      	; Actor1 X1,Y1 (hands up)
C3/75A0:	09      	; Actor1 X1,Y2 (hands up)
C3/75A1:	0C      	; Actor1 X3,Y1 (hands up)
C3/75A2:	0D      	; Actor1 X3,Y2 (hands up)
C3/75A3:	10      	; Actor2 X1,Y1 (hands down)
C3/75A4:	11      	; Actor2 X1,Y2 (hands down)
C3/75A5:	14      	; Actor2 X3,Y1 (hands down)
C3/75A6:	15      	; Actor2 X3,Y2 (hands down)
C3/75A7:	18      	; Actor2 X1,Y1 (hands up)
C3/75A8:	19      	; Actor2 X1,Y2 (hands up)
C3/75A9:	1C      	; Actor2 X3,Y1 (hands up)
C3/75AA:	1D      	; Actor2 X3,Y2 (hands up)
C3/75AB:	02      	; Actor1 X2,Y1 (hands down)
C3/75AC:	03      	; Actor1 X2,Y2 (hands down)
C3/75AD:	06      	; Actor1 X4,Y1 (hands down)
C3/75AE:	07      	; Actor1 X4,Y2 (hands down)
C3/75AF:	0A      	; Actor1 X2,Y1 (hands up)
C3/75B0:	0B      	; Actor1 X2,Y2 (hands up)
C3/75B1:	0E      	; Actor1 X4,Y1 (hands up)
C3/75B2:	0F      	; Actor1 X4,Y2 (hands up)
C3/75B3:	12      	; Actor2 X2,Y1 (hands down)
C3/75B4:	13      	; Actor2 X2,Y2 (hands down)
C3/75B5:	16      	; Actor2 X4,Y1 (hands down)
C3/75B6:	17      	; Actor2 X4,Y2 (hands down)
C3/75B7:	1A      	; Actor2 X2,Y1 (hands up)
C3/75B8:	1B      	; Actor2 X2,Y2 (hands up)
C3/75B9:	1E      	; Actor2 X4,Y1 (hands up)
C3/75BA:	1F      	; Actor2 X4,Y2 (hands up)

Tile graphics pointers for odd-numbered shop actors
C3/75BB:	C003    	; 1,1 (hands down)
C3/75BD:	E003    	; 1,2 (hands down)
C3/75BF:	0005    	; 2,1 (hands down)
C3/75C1:	2005    	; 2,2 (hands down)
C3/75C3:	4005    	; 3,1 (hands down)
C3/75C5:	6005    	; 3,2 (hands down)
C3/75C7:	FFFF    	; 4,1 (hands down)
C3/75C9:	FFFF    	; 4,2 (hands down)
C3/75CB:	C003    	; 1,1 (hands up)
C3/75CD:	6006    	; 1,2 (hands up)
C3/75CF:	8006    	; 2,1 (hands up)
C3/75D1:	A006    	; 2,2 (hands up)
C3/75D3:	C006    	; 3,1 (hands up)
C3/75D5:	E006    	; 3,2 (hands up)
C3/75D7:	FFFF    	; 4,1 (hands up)
C3/75D9:	FFFF    	; 4,2 (hands up)

Tile graphics pointers for even-numbered shop actors
C3/75DB:	601A    	; 1,1 (hands down)
C3/75DD:	801A    	; 1,2 (hands down)
C3/75DF:	A01B    	; 2,1 (hands down)
C3/75E1:	C01B    	; 2,2 (hands down)
C3/75E3:	E01B    	; 3,1 (hands down)
C3/75E5:	001C    	; 3,2 (hands down)
C3/75E7:	FFFF    	; 4,1 (hands down)
C3/75E9:	FFFF    	; 4,2 (hands down)
C3/75EB:	601A    	; 1,1 (hands up)
C3/75ED:	001D    	; 1,2 (hands up)
C3/75EF:	201D    	; 2,1 (hands up)
C3/75F1:	401D    	; 2,2 (hands up)
C3/75F3:	601D    	; 3,1 (hands up)
C3/75F5:	801D    	; 3,2 (hands up)
C3/75F7:	FFFF    	; 4,1 (hands up)
C3/75F9:	FFFF    	; 4,2 (hands up)

Upload cursor, arrow, and icon graphics (plus excess data)
C3/75FB:	C220    	REP #$20       ; 16-bit A
C3/75FD:	A00020  	LDY #$2000     ; $2000
C3/7600:	8C1621  	STY $2116      ; Set VRAM ptr
C3/7603:	A600    	LDX $00        ; Index: 0
C3/7605:	BFC05AED	LDA $ED5AC0,X  ; 8 px, 2 planes
C3/7609:	8D1821  	STA $2118      ; Save in VRAM
C3/760C:	E8      	INX            ; Index +1
C3/760D:	E8      	INX            ; Index +1
C3/760E:	E00014  	CPX #$1400     ; At ED/6EC0?
C3/7611:	D0F2    	BNE $7605      ; Loop if not
C3/7613:	E220    	SEP #$20       ; 8-bit A
C3/7615:	60      	RTS

Upload each member's portrait
C3/7616:	A600    	LDX $00        ; 1st: Member 1
C3/7618:	C220    	REP #$20       ; 16-bit A
C3/761A:	BFE576C3	LDA $C376E5,X  ; VRAM pointer
C3/761E:	8D1621  	STA $2116      ; Set destination
C3/7621:	B46D    	LDY $6D,X      ; Actor's address
C3/7623:	DA      	PHX            ; Save mbr index
C3/7624:	7B      	TDC            ; Clear A
C3/7625:	E220    	SEP #$20       ; 8-bit A
C3/7627:	B91400  	LDA $0014,Y    ; Status
C3/762A:	2920    	AND #$20       ; Imp?
C3/762C:	F004    	BEQ $7632      ; Branch if not
C3/762E:	A90F    	LDA #$0F       ; Use Imp image
C3/7630:	800A    	BRA $763C      ; Ignore actor
C3/7632:	B90000  	LDA $0000,Y    ; Actor
C3/7635:	C901    	CMP #$01       ; Locke?
C3/7637:	F003    	BEQ $763C      ; Branch if so
C3/7639:	B90100  	LDA $0001,Y    ; Graphics set
C3/763C:	C220    	REP #$20       ; 16-bit A
C3/763E:	0A      	ASL A          ; Double it
C3/763F:	AA      	TAX            ; Index it
C3/7640:	BFAF76C3	LDA $C376AF,X  ; GFX pointer
C3/7644:	AA      	TAX            ; Index it
C3/7645:	209477  	JSR $7794      ; Upload portrait
C3/7648:	FA      	PLX            ; Member index
C3/7649:	E8      	INX            ; Member index +1
C3/764A:	E8      	INX            ; Member index +1
C3/764B:	E00800  	CPX #$0008     ; Done 4 members?
C3/764E:	D0C8    	BNE $7618      ; Loop if not
C3/7650:	E220    	SEP #$20       ; 8-bit A
C3/7652:	60      	RTS

Set to upload healed member's portrait
C3/7653:	A9ED    	LDA #$ED       ; Bank: ED
C3/7655:	851F    	STA $1F        ; Set src HB
C3/7657:	A02003  	LDY #$0320     ; Bytes: 800
C3/765A:	8419    	STY $19        ; Set data size
C3/765C:	7B      	TDC            ; Clear A
C3/765D:	A59C    	LDA $9C        ; Member slot
C3/765F:	0A      	ASL A          ; Double it
C3/7660:	AA      	TAX            ; Index it
C3/7661:	C220    	REP #$20       ; 16-bit A
C3/7663:	BFE576C3	LDA $C376E5,X  ; VRAM pointer
C3/7667:	851B    	STA $1B        ; Set destination
C3/7669:	B46D    	LDY $6D,X      ; Actor's address
C3/766B:	7B      	TDC            ; Clear A
C3/766C:	E220    	SEP #$20       ; 8-bit A
C3/766E:	B91400  	LDA $0014,Y    ; Status
C3/7671:	2920    	AND #$20       ; Imp?
C3/7673:	F004    	BEQ $7679      ; Branch if not
C3/7675:	A90F    	LDA #$0F       ; Use Imp image
C3/7677:	800A    	BRA $7683      ; Ignore actor
C3/7679:	B90000  	LDA $0000,Y    ; Actor
C3/767C:	C901    	CMP #$01       ; Locke?
C3/767E:	F003    	BEQ $7683      ; Branch if so
C3/7680:	B90100  	LDA $0001,Y    ; Graphics set
C3/7683:	C220    	REP #$20       ; 16-bit A
C3/7685:	0A      	ASL A          ; Double it
C3/7686:	AA      	TAX            ; Index it
C3/7687:	BFAF76C3	LDA $C376AF,X  ; GFX pointer
C3/768B:	18      	CLC            ; ...
C3/768C:	69001D  	ADC #$1D00     ; Add base adr
C3/768F:	851D    	STA $1D        ; Set src LBs
C3/7691:	E220    	SEP #$20       ; 8-bit A
C3/7693:	60      	RTS

Portrait palette assignments
C3/7694:	00      	; 00: Terra
C3/7695:	01      	; 01: Locke
C3/7696:	02      	; 02: Cyan
C3/7697:	03      	; 03: Shadow
C3/7698:	04      	; 04: Edgar
C3/7699:	05      	; 05: Sabin
C3/769A:	06      	; 06: Celes
C3/769B:	07      	; 07: Strago
C3/769C:	08      	; 08: Relm
C3/769D:	09      	; 09: Setzer
C3/769E:	0A      	; 0A: Moogle
C3/769F:	0B      	; 0B: Gau
C3/76A0:	0C      	; 0C: Gogo
C3/76A1:	0D      	; 0D: Umaro
C3/76A2:	0E      	; 0E: Soldier
C3/76A3:	0F      	; 0F: Imp
C3/76A4:	10      	; 10: Leo
C3/76A5:	11      	; 11: Banon
C3/76A6:	00      	; 12: Terra (unused; esper Terra)
C3/76A7:	0E      	; 13: Soldier (unused; merchant)
C3/76A8:	12      	; 14: Ghost
C3/76A9:	00      	; 15: Terra (unused; Kefka)
C3/76AA:	00      	; 16: Terra (unused; Gestahl)
C3/76AB:	00      	; 17: Terra (unused; Gungho)
C3/76AC:	00      	; 18: Terra (unused; Duane)
C3/76AD:	00      	; 19: Terra (unused; dog)
C3/76AE:	06      	; 1A: Celes (unused; Maria)

Pointers to portrait graphics
C3/76AF:	0000    	; 00: Terra
C3/76B1:	2003    	; 01: Locke
C3/76B3:	4006    	; 02: Cyan
C3/76B5:	6009    	; 03: Shadow
C3/76B7:	800C    	; 04: Edgar
C3/76B9:	A00F    	; 05: Sabin
C3/76BB:	C012    	; 06: Celes
C3/76BD:	E015    	; 07: Strago
C3/76BF:	0019    	; 08: Relm
C3/76C1:	201C    	; 09: Setzer
C3/76C3:	401F    	; 0A: Mog
C3/76C5:	6022    	; 0B: Gau
C3/76C7:	8025    	; 0C: Gogo
C3/76C9:	A028    	; 0D: Umaro
C3/76CB:	C02B    	; 0E: Soldier
C3/76CD:	E02E    	; 0F: Imp
C3/76CF:	0032    	; 10: Leo
C3/76D1:	2035    	; 11: Banon
C3/76D3:	0000    	; 12: Terra (unused; esper Terra)
C3/76D5:	C02B    	; 13: Soldier (unused; merchant)
C3/76D7:	4038    	; 14: Ghost
C3/76D9:	0000    	; 15: Terra (unused; Kefka)
C3/76DB:	0000    	; 16: Terra (unused; Gestahl)
C3/76DD:	0000    	; 17: Terra (unused; Gungho)
C3/76DF:	0000    	; 18: Terra (unused; Duane)
C3/76E1:	0000    	; 19: Terra (unused; dog)
C3/76E3:	C012    	; 1A: Celes (unused; Maria)

VRAM pointers for portrait graphics
C3/76E5:	0026    	; Member 1
C3/76E7:	0028    	; Member 2
C3/76E9:	002A    	; Member 3
C3/76EB:	002C    	; Member 4
C3/76ED:	002E    	; Bogus...
C3/76EF:	0030    	; Bogus...
C3/76F1:	0032    	; Bogus...
C3/76F3:	0034    	; Bogus...

List actor sprites for save file 1
C3/76F5:	A491    	LDY $91        ; Blank file?
C3/76F7:	F01B    	BEQ $7714      ; Nobody if so
C3/76F9:	A600    	LDX $00        ; Member slot: 1
C3/76FB:	B569    	LDA $69,X      ; Actor in slot
C3/76FD:	3008    	BMI $7707      ; Blank if none
C3/76FF:	202B77  	JSR $772B      ; Get sprite set
C3/7702:	203A77  	JSR $773A      ; Handle soldier
C3/7705:	8002    	BRA $7709      ; Skip a line
C3/7707:	A9FF    	LDA #$FF       ; Sprite: None
C3/7709:	9F71AA7E	STA $7EAA71,X  ; Set sprite
C3/770D:	E8      	INX            ; Member slot +1
C3/770E:	E00400  	CPX #$0004     ; Done all 4?
C3/7711:	D0E8    	BNE $76FB      ; Loop if not
C3/7713:	60      	RTS

Fork: Empty party
C3/7714:	A600    	LDX $00        ; Sprites: 1-4
C3/7716:	8000    	BRA $7718      ; ...
C3/7718:	A9FF    	LDA #$FF       ; Sprite: None
C3/771A:	9F71AA7E	STA $7EAA71,X  ; Set sprite A
C3/771E:	9F72AA7E	STA $7EAA72,X  ; Set sprite B
C3/7722:	9F73AA7E	STA $7EAA73,X  ; Set sprite C
C3/7726:	9F74AA7E	STA $7EAA74,X  ; Set sprite D
C3/772A:	60      	RTS

Get actor's graphics set
C3/772B:	DA      	PHX            ; Save X
C3/772C:	C220    	REP #$20       ; 16-bit A
C3/772E:	8A      	TXA            ; Actor number
C3/772F:	0A      	ASL A          ; Double it
C3/7730:	AA      	TAX            ; Index it
C3/7731:	B46D    	LDY $6D,X      ; Actor's address
C3/7733:	E220    	SEP #$20       ; 8-bit A
C3/7735:	FA      	PLX            ; Restore X
C3/7736:	B90100  	LDA $0001,Y    ; Graphics set
C3/7739:	60      	RTS

Choose between green or brown soldier
C3/773A:	C90E    	CMP #$0E       ; Soldier sprite?
C3/773C:	D00D    	BNE $774B      ; Exit if not
C3/773E:	ADA01E  	LDA $1EA0      ; Event flags
C3/7741:	8908    	BIT #$08       ; Soldier disguise?
C3/7743:	F004    	BEQ $7749      ; Pick brown if not
C3/7745:	A916    	LDA #$16       ; Use green soldier
C3/7747:	8002    	BRA $774B      ; Exit
C3/7749:	A90E    	LDA #$0E       ; Use brown soldier
C3/774B:	60      	RTS

List actor sprites for save file 2
C3/774C:	A493    	LDY $93        ; Blank file?
C3/774E:	F01B    	BEQ $776B      ; Nobody if so
C3/7750:	A600    	LDX $00        ; Member slot: 1
C3/7752:	B569    	LDA $69,X      ; Actor in slot
C3/7754:	3008    	BMI $775E      ; Blank if none
C3/7756:	202B77  	JSR $772B      ; Get sprite set
C3/7759:	203A77  	JSR $773A      ; Handle soldier
C3/775C:	8002    	BRA $7760      ; Skip a line
C3/775E:	A9FF    	LDA #$FF       ; Sprite: None
C3/7760:	9F75AA7E	STA $7EAA75,X  ; Set sprite
C3/7764:	E8      	INX            ; Member slot +1
C3/7765:	E00400  	CPX #$0004     ; Done all 4?
C3/7768:	D0E8    	BNE $7752      ; Loop if not
C3/776A:	60      	RTS

Fork: Empty party
C3/776B:	A20400  	LDX #$0004     ; Sprites: 5-8
C3/776E:	80A8    	BRA $7718      ; Blank sprites

List actor sprites for save file 3
C3/7770:	A495    	LDY $95        ; Blank file?
C3/7772:	F01B    	BEQ $778F      ; Nobody if so
C3/7774:	A600    	LDX $00        ; Member slot: 1
C3/7776:	B569    	LDA $69,X      ; Actor in slot
C3/7778:	3008    	BMI $7782      ; Blank if none
C3/777A:	202B77  	JSR $772B      ; Get sprite set
C3/777D:	203A77  	JSR $773A      ; Handle soldier
C3/7780:	8002    	BRA $7784      ; Skip a line
C3/7782:	A9FF    	LDA #$FF       ; Sprite: None
C3/7784:	9F79AA7E	STA $7EAA79,X  ; Set sprite
C3/7788:	E8      	INX            ; Member slot +1
C3/7789:	E00400  	CPX #$0004     ; Done all 4?
C3/778C:	D0E8    	BNE $7776      ; Loop if not
C3/778E:	60      	RTS

Fork: Empty party
C3/778F:	A20800  	LDX #$0008     ; Sprites: 9-12
C3/7792:	8084    	BRA $7718      ; Blank sprites

Upload actor's portrait graphics
C3/7794:	A09001  	LDY #$0190     ; Tiles: 25
C3/7797:	BF001DED	LDA $ED1D00,X  ; 8 px, 2 planes
C3/779B:	8D1821  	STA $2118      ; Save in VRAM
C3/779E:	E8      	INX            ; Index +1
C3/779F:	E8      	INX            ; Index +1
C3/77A0:	88      	DEY            ; One less word
C3/77A1:	D0F4    	BNE $7797      ; Loop till last
C3/77A3:	60      	RTS

Create a blank portrait for Lineup menu
C3/77A4:	A2519F  	LDX #$9F51     ; 7E/9F51
C3/77A7:	8E8121  	STX $2181      ; Set WRAM LBs
C3/77AA:	A29001  	LDX #$0190     ; Tiles: 25
C3/77AD:	9C8021  	STZ $2180      ; 8 px, 1 plane
C3/77B0:	9C8021  	STZ $2180      ; 8 px, 1 plane
C3/77B3:	CA      	DEX            ; One less word
C3/77B4:	D0F7    	BNE $77AD      ; Loop till last
C3/77B6:	60      	RTS

Validate SRAM markers
C3/77B7:	C220    	REP #$20       ; 16-bit A
C3/77B9:	A91BE4  	LDA #$E41B     ; Square's marker
C3/77BC:	CFF87F30	CMP $307FF8    ; In file A?
C3/77C0:	F019    	BEQ $77DB      ; Okay if so
C3/77C2:	CFFA7F30	CMP $307FFA    ; In file B?
C3/77C6:	F013    	BEQ $77DB      ; Okay if so
C3/77C8:	CFFC7F30	CMP $307FFC    ; In file C?
C3/77CC:	F00D    	BEQ $77DB      ; Okay if so
C3/77CE:	CFFE7F30	CMP $307FFE    ; In file D?...
C3/77D2:	F007    	BEQ $77DB      ; Okay if so
C3/77D4:	E220    	SEP #$20       ; 8-bit A
C3/77D6:	20DF77  	JSR $77DF      ; Delete all SRAM
C3/77D9:	18      	CLC            ; Skip Load menu
C3/77DA:	60      	RTS            ; Exit
C3/77DB:	E220    	SEP #$20       ; 8-bit A
C3/77DD:	38      	SEC            ; Call Load menu
C3/77DE:	60      	RTS

Delete all saved data
C3/77DF:	8B      	PHB            ; Save DB
C3/77E0:	A930    	LDA #$30       ; Bank: 30
C3/77E2:	48      	PHA            ; Put on stack
C3/77E3:	AB      	PLB            ; Set DB to 30
C3/77E4:	A20000  	LDX #$0000     ; SRAM index: 0
C3/77E7:	C220    	REP #$20       ; 16-bit A
C3/77E9:	9E0060  	STZ $6000,X    ; Clear SRAM word
C3/77EC:	E8      	INX            ; Index +1
C3/77ED:	E8      	INX            ; Index +1
C3/77EE:	9E0060  	STZ $6000,X    ; Clear SRAM word
C3/77F1:	E8      	INX            ; Index +1
C3/77F2:	E8      	INX            ; Index +1
C3/77F3:	E00020  	CPX #$2000     ; Fully cleared?
C3/77F6:	D0F1    	BNE $77E9      ; Loop if not
C3/77F8:	E220    	SEP #$20       ; 8-bit A
C3/77FA:	AB      	PLB            ; Restore DB
C3/77FB:	60      	RTS

Reset saved cursor positions for main menu
C3/77FC:	A20000  	LDX #$0000     ; Index: 0
C3/77FF:	9E2B02  	STZ $022B,X    ; Clear position
C3/7802:	E8      	INX            ; Point to next
C3/7803:	E01F00  	CPX #$001F     ; Past $0249?
C3/7806:	D0F7    	BNE $77FF      ; Loop if not
C3/7808:	A901    	LDA #$01       ; Skills: "Magic"
C3/780A:	8D3702  	STA $0237      ; Set for ally 1
C3/780D:	8D3902  	STA $0239      ; Set for ally 2
C3/7810:	8D3B02  	STA $023B      ; Set for ally 3
C3/7813:	8D3D02  	STA $023D      ; Set for ally 4
C3/7816:	60      	RTS

Mark all save files as Square's property
C3/7817:	C220    	REP #$20       ; 16-bit A
C3/7819:	A91BE4  	LDA #$E41B     ; Square marker
C3/781C:	8FF87F30	STA $307FF8    ; Mark file A
C3/7820:	8FFA7F30	STA $307FFA    ; Mark file B
C3/7824:	8FFC7F30	STA $307FFC    ; Mark file C
C3/7828:	8FFE7F30	STA $307FFE    ; No file D...
C3/782C:	E220    	SEP #$20       ; 8-bit A
C3/782E:	60      	RTS

Reset game data for Load menu
C3/782F:	20FC77  	JSR $77FC      ; Clear cursor mem
C3/7832:	A0FF7F  	LDY #$7FFF     ; Color: White
C3/7835:	8C551D  	STY $1D55      ; Set user font's
C3/7838:	A912    	LDA #$12       ; Buttons: A & B
C3/783A:	8D501D  	STA $1D50      ; Define purpose
C3/783D:	A934    	LDA #$34       ; Buttons: X & Y
C3/783F:	8D511D  	STA $1D51      ; Define purpose
C3/7842:	A956    	LDA #$56       ; Buttons: L & R
C3/7844:	8D521D  	STA $1D52      ; Define purpose
C3/7847:	A906    	LDA #$06       ; Button: Select
C3/7849:	8D531D  	STA $1D53      ; Define purpose
C3/784C:	A92A    	LDA #$2A       ; Bat.Mode, etc.
C3/784E:	8D4D1D  	STA $1D4D      ; Define options
C3/7851:	7B      	TDC            ; Clear A
C3/7852:	A8      	TAY            ; Clear Y
C3/7853:	8CC71D  	STY $1DC7      ; Save count: 0
C3/7856:	9C541D  	STZ $1D54      ; Mag.Order, etc.
C3/7859:	9C4E1D  	STZ $1D4E      ; Wallpaper, etc.
C3/785C:	9C4F1D  	STZ $1D4F      ; Pad assignments
C3/785F:	8C6318  	STY $1863      ; SRAM hours, mins
C3/7862:	9C6518  	STZ $1865      ; SRAM seconds
C3/7865:	8C6018  	STY $1860      ; Gold LBs
C3/7868:	9C6218  	STZ $1862      ; Gold HB
C3/786B:	8C6618  	STY $1866      ; Steps LBs
C3/786E:	9C6818  	STZ $1868      ; Steps HB
C3/7871:	8C1B02  	STY $021B      ; Real hours, mins
C3/7874:	8C1D02  	STY $021D      ; Real secs, frames
C3/7877:	205073  	JSR $7350      ; Reset skin colors
C3/787A:	60      	RTS

2C: Initialize Lineup menu
C3/787B:	209078  	JSR $7890      ; Init variables
C3/787E:	644A    	STZ $4A        ; Cursor area: Top
C3/7880:	645A    	STZ $5A        ; Always 0...
C3/7882:	6499    	STZ $99        ; Always 0...
C3/7884:	20BE7D  	JSR $7DBE      ; List/Create actors
C3/7887:	20167C  	JSR $7C16      ; Load navig data
C3/788A:	201F7C  	JSR $7C1F      ; Relocate cursor
C3/788D:	4CA878  	JMP $78A8      ; Draw menu, etc.

Initialize variables for Lineup menu
C3/7890:	20F735  	JSR $35F7      ; Reset/Stop stuff
C3/7893:	207670  	JSR $7076      ; Reset BGs' X/Y
C3/7896:	A903    	LDA #$03       ; 64x64 at $0000
C3/7898:	8D0721  	STA $2107      ; Set BG1 map loc
C3/789B:	A9C0    	LDA #$C0       ; Channels: 6, 7
C3/789D:	1443    	TRB $43        ; Halt HDMA 6+7...
C3/789F:	A902    	LDA #$02       ; Main cursor: On
C3/78A1:	8546    	STA $46        ; Bar/Blinker: Off
C3/78A3:	A906    	LDA #$06       ; Status icons: Temp
C3/78A5:	0447    	TSB $47        ; Set menu flag
C3/78A7:	60      	RTS

Draw Lineup menu, etc.
C3/78A8:	203308  	JSR $0833      ; Queue cursor OAM
C3/78AB:	20597D  	JSR $7D59      ; Set to shift text
C3/78AE:	20B67C  	JSR $7CB6      ; Draw boxes/title
C3/78B1:	20D380  	JSR $80D3      ; Create portrait
C3/78B4:	20E780  	JSR $80E7      ; Draw actor info
C3/78B7:	20680F  	JSR $0F68      ; Queue text upload
C3/78BA:	A92D    	LDA #$2D       ; C3/78FC
C3/78BC:	8527    	STA $27        ; Queue: Choice 1
C3/78BE:	A966    	LDA #$66       ; C3/8193
C3/78C0:	8526    	STA $26        ; Next: Fade-in
C3/78C2:	4C0936  	JMP $3609      ; BRT:1 + NMI

7D: Return to Lineup menu from Status menu
C3/78C5:	209078  	JSR $7890      ; Init variables
C3/78C8:	A55D    	LDA $5D        ; Backup of $99
C3/78CA:	8599    	STA $99        ; Always 0...
C3/78CC:	200B7E  	JSR $7E0B      ; Create/lock chars
C3/78CF:	A590    	LDA $90        ; Go to party area?
C3/78D1:	D00C    	BNE $78DF      ; Branch if so
C3/78D3:	20167C  	JSR $7C16      ; Load navig data
C3/78D6:	A48E    	LDY $8E        ; Old cursor loc
C3/78D8:	844D    	STY $4D        ; Set as current
C3/78DA:	201F7C  	JSR $7C1F      ; Relocate cursor
C3/78DD:	801A    	BRA $78F9      ; Draw menu, etc.

Fork: Back to party area
C3/78DF:	A590    	LDA $90        ; ...
C3/78E1:	854A    	STA $4A        ; Cursor area: Top
C3/78E3:	A58D    	LDA $8D        ; Backup of $5A
C3/78E5:	855A    	STA $5A        ; Always 0...
C3/78E7:	206F7B  	JSR $7B6F      ; Relocate cursor
C3/78EA:	A48E    	LDY $8E        ; Old cursor loc
C3/78EC:	844D    	STY $4D        ; Set as current
C3/78EE:	A579    	LDA $79        ; Cursor wrap flags
C3/78F0:	8559    	STA $59        ; Restore them
C3/78F2:	A47A    	LDY $7A        ; Row/Col count
C3/78F4:	8453    	STY $53        ; Restore format
C3/78F6:	20A97B  	JSR $7BA9      ; Handle D-Pad
C3/78F9:	4CA878  	JMP $78A8      ; Draw menu, etc.

2D: Handle Lineup menu choice 1
C3/78FC:	204D79  	JSR $794D      ; Cover D-Pad/stats
C3/78FF:	904B    	BCC $794C      ; If crossed center
C3/7901:	A508    	LDA $08        ; No-autofire keys
C3/7903:	8980    	BIT #$80       ; Pushing A?
C3/7905:	F036    	BEQ $793D      ; Branch if not
C3/7907:	A54B    	LDA $4B        ; Cursor slot
C3/7909:	18      	CLC            ; Prepare ADC
C3/790A:	654A    	ADC $4A        ; +16 if on party
C3/790C:	655A    	ADC $5A        ; Always 0...
C3/790E:	AA      	TAX            ; Index sum
C3/790F:	BF8DAC7E	LDA $7EAC8D,X  ; Locked slot?
C3/7913:	3021    	BMI $7936      ; Fail if so
C3/7915:	201D0F  	JSR $0F1D      ; Sound: Click
C3/7918:	A54B    	LDA $4B        ; Cursor slot
C3/791A:	8528    	STA $28        ; Set pick 1's
C3/791C:	A54A    	LDA $4A        ; Cursor area
C3/791E:	8549    	STA $49        ; Set pick 1's
C3/7920:	A55A    	LDA $5A        ; Always 0...
C3/7922:	855B    	STA $5B        ; Ditto...
C3/7924:	A92E    	LDA #$2E       ; C3/79A0
C3/7926:	8526    	STA $26        ; Next: Choice 2
C3/7928:	20BC2F  	JSR $2FBC      ; Create blinker
C3/792B:	A54A    	LDA $4A        ; In party area?
C3/792D:	F006    	BEQ $7935      ; Exit if not
C3/792F:	A902    	LDA #$02       ; Anim mode: 2
C3/7931:	9F49367E	STA $7E3649,X  ; Set blinker's
C3/7935:	60      	RTS

Fork: Forced member
C3/7936:	202B0F  	JSR $0F2B      ; Play buzzer
C3/7939:	20F830  	JSR $30F8      ; Pixelate screen
C3/793C:	60      	RTS

Fork: Exit attempt
C3/793D:	A509    	LDA $09        ; No-autofire keys
C3/793F:	8910    	BIT #$10       ; Pushing Start?
C3/7941:	D006    	BNE $7949      ; Branch if so
C3/7943:	A509    	LDA $09        ; ...
C3/7945:	8980    	BIT #$80       ; Pushing B?
C3/7947:	F003    	BEQ $794C      ; Exit if not
C3/7949:	202A7A  	JSR $7A2A      ; Validate groups
C3/794C:	60      	RTS

Handle D-Pad and update actor info in Lineup menu
C3/794D:	204C7D  	JSR $7D4C      ; Update char info
C3/7950:	A50B    	LDA $0B        ; Semi-auto keys
C3/7952:	8904    	BIT #$04       ; Pushing down?
C3/7954:	F01C    	BEQ $7972      ; Branch if not
C3/7956:	A54E    	LDA $4E        ; Cursor row
C3/7958:	C901    	CMP #$01       ; 2nd or 4th?
C3/795A:	D016    	BNE $7972      ; Branch if not
C3/795C:	A54A    	LDA $4A        ; In party area?
C3/795E:	D012    	BNE $7972      ; Branch if so

Fork: Enter party area
C3/7960:	A910    	LDA #$10       ; Cursor slot: +16
C3/7962:	854A    	STA $4A        ; Set area mod
C3/7964:	A599    	LDA $99        ; Always 0...
C3/7966:	0A      	ASL A          ; x2...
C3/7967:	0A      	ASL A          ; x4...
C3/7968:	855A    	STA $5A        ; Always 0...
C3/796A:	206F7B  	JSR $7B6F      ; Relocate cursor
C3/796D:	200E0F  	JSR $0F0E      ; Sound: Cursor
C3/7970:	18      	CLC            ; Mark area exit
C3/7971:	60      	RTS

Fork: Handle up
C3/7972:	A50B    	LDA $0B        ; Semi-auto keys
C3/7974:	8908    	BIT #$08       ; Pushing up?
C3/7976:	F022    	BEQ $799A      ; Branch if not
C3/7978:	A54E    	LDA $4E        ; On row 1 or 3?
C3/797A:	D01E    	BNE $799A      ; Branch if not
C3/797C:	A54A    	LDA $4A        ; In party area?
C3/797E:	F01A    	BEQ $799A      ; Branch if not

Fork: Exit party area
C3/7980:	A54D    	LDA $4D        ; Cursor column
C3/7982:	855E    	STA $5E        ; Set as former
C3/7984:	644A    	STZ $4A        ; Cursor area: Top
C3/7986:	645A    	STZ $5A        ; Always 0...
C3/7988:	20167C  	JSR $7C16      ; Load navig data
C3/798B:	A901    	LDA #$01       ; Row: 2nd
C3/798D:	854E    	STA $4E        ; Set cursor row
C3/798F:	20E07B  	JSR $7BE0      ; Adjust column
C3/7992:	201F7C  	JSR $7C1F      ; Relocate cursor
C3/7995:	200E0F  	JSR $0F0E      ; Sound: Cursor
C3/7998:	18      	CLC            ; Mark area exit
C3/7999:	60      	RTS

Fork: Staying within same area
C3/799A:	20A97B  	JSR $7BA9      ; Handle D-Pad
C3/799D:	38      	SEC            ; Unmark area exit
C3/799E:	60      	RTS            ; ...
C3/799F:	60      	RTS

2E: Handle Lineup menu choice 2
C3/79A0:	204D79  	JSR $794D      ; Cover D-Pad/stats
C3/79A3:	90FA    	BCC $799F      ; If crossed center
C3/79A5:	A508    	LDA $08        ; No-autofire keys
C3/79A7:	8980    	BIT #$80       ; Pushing A?
C3/79A9:	F066    	BEQ $7A11      ; Branch if not
C3/79AB:	7B      	TDC            ; Clear A
C3/79AC:	A54B    	LDA $4B        ; Cursor slot B
C3/79AE:	18      	CLC            ; Prepare ADC
C3/79AF:	654A    	ADC $4A        ; +16 if on party
C3/79B1:	655A    	ADC $5A        ; Always 0...
C3/79B3:	85E0    	STA $E0        ; Memorize sum
C3/79B5:	AA      	TAX            ; Index it
C3/79B6:	BF8DAC7E	LDA $7EAC8D,X  ; Locked slot?
C3/79BA:	3067    	BMI $7A23      ; Fail if so
C3/79BC:	7B      	TDC            ; Clear A
C3/79BD:	A528    	LDA $28        ; Cursor slot A
C3/79BF:	18      	CLC            ; Prepare ADC
C3/79C0:	6549    	ADC $49        ; +16 if on party
C3/79C2:	655B    	ADC $5B        ; Always 0...
C3/79C4:	C5E0    	CMP $E0        ; Slots are same?
C3/79C6:	D031    	BNE $79F9      ; Swap chars if not

Fork: Double-clicked a slot
C3/79C8:	A5E0    	LDA $E0        ; Chosen slot
C3/79CA:	AA      	TAX            ; Index it
C3/79CB:	BF899D7E	LDA $7E9D89,X  ; Empty slot?
C3/79CF:	303A    	BMI $7A0B      ; Fail if so
C3/79D1:	201D0F  	JSR $0F1D      ; Sound: Click
C3/79D4:	A559    	LDA $59        ; Cursor wrap flags
C3/79D6:	8579    	STA $79        ; Make backup copy
C3/79D8:	A453    	LDY $53        ; Rows/Cols count
C3/79DA:	847A    	STY $7A        ; Make backup copy
C3/79DC:	A44D    	LDY $4D        ; Cursor position
C3/79DE:	848E    	STY $8E        ; Set return loc
C3/79E0:	A54A    	LDA $4A        ; Area indicator
C3/79E2:	8590    	STA $90        ; Set for return
C3/79E4:	A55A    	LDA $5A        ; Always 0...
C3/79E6:	858D    	STA $8D        ; Make a backup
C3/79E8:	A599    	LDA $99        ; Always 0...
C3/79EA:	855D    	STA $5D        ; Make a backup
C3/79EC:	A942    	LDA #$42       ; C3/6966
C3/79EE:	8527    	STA $27        ; Queue Status menu
C3/79F0:	A967    	LDA #$67       ; C3/8184
C3/79F2:	8526    	STA $26        ; Next: Fade-out
C3/79F4:	A97D    	LDA #$7D       ; C3/78C5
C3/79F6:	854C    	STA $4C        ; Set return cmd
C3/79F8:	60      	RTS

Fork: Swap slot contents
C3/79F9:	201D0F  	JSR $0F1D      ; Sound: Click
C3/79FC:	A907    	LDA #$07       ; Actors: Delete
C3/79FE:	1447    	TRB $47        ; Set menu flag
C3/7A00:	208C7A  	JSR $7A8C      ; Swap positions
C3/7A03:	201B12  	JSR $121B      ; Delete actors
C3/7A06:	20A77D  	JSR $7DA7      ; Create actors
C3/7A09:	800F    	BRA $7A1A      ; Next: Choice 1

Fork: Double-clicked empty slot
C3/7A0B:	202B0F  	JSR $0F2B      ; Play buzzer
C3/7A0E:	20F830  	JSR $30F8      ; Pixelate screen

Fork: Handle B
C3/7A11:	A509    	LDA $09        ; No-autofire keys
C3/7A13:	8980    	BIT #$80       ; Pushing B?
C3/7A15:	F00B    	BEQ $7A22      ; Exit if not
C3/7A17:	20140F  	JSR $0F14      ; Sound: Cursor
C3/7A1A:	A92D    	LDA #$2D       ; C3/78FC
C3/7A1C:	8526    	STA $26        ; Next: Choice 1
C3/7A1E:	A905    	LDA #$05       ; Blinker: Off
C3/7A20:	1446    	TRB $46        ; Set menu flag
C3/7A22:	60      	RTS

Fork: Forced member
C3/7A23:	202B0F  	JSR $0F2B      ; Play buzzer
C3/7A26:	20F830  	JSR $30F8      ; Pixelate screen
C3/7A29:	60      	RTS

Handle attempt to exit Lineup menu
C3/7A2A:	7B      	TDC            ; Clear A
C3/7A2B:	AA      	TAX            ; Slot index: 0
C3/7A2C:	AD0102  	LDA $0201      ; Group count
C3/7A2F:	297F    	AND #$7F       ; Clear flag
C3/7A31:	0A      	ASL A          ; x2
C3/7A32:	0A      	ASL A          ; x4 members
C3/7A33:	85F3    	STA $F3        ; Set index cap
C3/7A35:	64F4    	STZ $F4        ; Clear its HB
C3/7A37:	64E0    	STZ $E0        ; Members: 0
C3/7A39:	A00400  	LDY #$0004     ; Slots left: 4
C3/7A3C:	BF999D7E	LDA $7E9D99,X  ; Empty slot?
C3/7A40:	3002    	BMI $7A44      ; Branch if so
C3/7A42:	E6E0    	INC $E0        ; +1 member
C3/7A44:	E8      	INX            ; Slot index +1
C3/7A45:	88      	DEY            ; One less slot
C3/7A46:	D0F4    	BNE $7A3C      ; Loop till 4th
C3/7A48:	A5E0    	LDA $E0        ; Empty party?
C3/7A4A:	F013    	BEQ $7A5F      ; Fail if so
C3/7A4C:	E4F3    	CPX $F3        ; Last party?
C3/7A4E:	D0E7    	BNE $7A37      ; Loop if not
C3/7A50:	20140F  	JSR $0F14      ; Sound: Cursor
C3/7A53:	9C0502  	STZ $0205      ; Never read...
C3/7A56:	A9FF    	LDA #$FF       ; Null value
C3/7A58:	8527    	STA $27        ; Queue menu exit
C3/7A5A:	A967    	LDA #$67       ; C3/8184
C3/7A5C:	8526    	STA $26        ; Next: Fade-out
C3/7A5E:	60      	RTS

Fork: Draw "You need <#> group(s)."
C3/7A5F:	202B0F  	JSR $0F2B      ; Play buzzer
C3/7A62:	A920    	LDA #$20       ; Palette 0
C3/7A64:	8529    	STA $29        ; Color: User's
C3/7A66:	AD0102  	LDA $0201      ; Event data
C3/7A69:	2907    	AND #$07       ; Group count
C3/7A6B:	C901    	CMP #$01       ; One group?
C3/7A6D:	F00E    	BEQ $7A7D      ; Branch if so
C3/7A6F:	A04482  	LDY #$8244     ; Text pointer
C3/7A72:	202603  	JSR $0326      ; Draw message
C3/7A75:	A22F39  	LDX #$392F     ; Tilemap pointer
C3/7A78:	208B7D  	JSR $7D8B      ; Draw group count
C3/7A7B:	8006    	BRA $7A83      ; Skip 2 lines

Fork: Draw "No one there!"
C3/7A7D:	A05882  	LDY #$8258     ; Text pointer
C3/7A80:	202603  	JSR $0326      ; Draw message
C3/7A83:	A920    	LDA #$20       ; Frames: 32
C3/7A85:	8520    	STA $20        ; Set wait timer
C3/7A87:	A969    	LDA #$69       ; C3/821B
C3/7A89:	8526    	STA $26        ; Next: Wait
C3/7A8B:	60      	RTS

Swap actor positions in Lineup menu
C3/7A8C:	7B      	TDC            ; Clear A
C3/7A8D:	A528    	LDA $28        ; Chosen slot A
C3/7A8F:	18      	CLC            ; Prepare ADC
C3/7A90:	6549    	ADC $49        ; +16 if on party
C3/7A92:	655B    	ADC $5B        ; Always 0...
C3/7A94:	AA      	TAX            ; Index sum
C3/7A95:	BF899D7E	LDA $7E9D89,X  ; Actor in slot A
C3/7A99:	85E5    	STA $E5        ; Memorize it
C3/7A9B:	100E    	BPL $7AAB      ; Branch if any

Fork: Fake party info for empty slot A
C3/7A9D:	BF519E7E	LDA $7E9E51,X  ; Party number
C3/7AA1:	1F437BC3	ORA $C37B43,X  ; Add roster slot
C3/7AA5:	85E0    	STA $E0        ; Memorize it
C3/7AA7:	64E1    	STZ $E1        ; Clear row...
C3/7AA9:	800F    	BRA $7ABA      ; Handle slot B

Fork: Get party info of actor A
C3/7AAB:	A8      	TAY            ; Index actor A
C3/7AAC:	B95018  	LDA $1850,Y    ; Party info
C3/7AAF:	29DF    	AND #$DF       ; Discard row
C3/7AB1:	85E0    	STA $E0        ; Memorize it
C3/7AB3:	B95018  	LDA $1850,Y    ; Party info
C3/7AB6:	2920    	AND #$20       ; Isolate row
C3/7AB8:	85E1    	STA $E1        ; Memorize it

Fork: Get actor in slot B
C3/7ABA:	A54B    	LDA $4B        ; Chosen slot B
C3/7ABC:	18      	CLC            ; ...
C3/7ABD:	654A    	ADC $4A        ; +16 if on party
C3/7ABF:	655A    	ADC $5A        ; Always 0...
C3/7AC1:	AA      	TAX            ; Index sum
C3/7AC2:	BF899D7E	LDA $7E9D89,X  ; Actor in slot B
C3/7AC6:	85E6    	STA $E6        ; Memorize it
C3/7AC8:	100E    	BPL $7AD8      ; Branch if any

Fork: Fake party info for empty slot B
C3/7ACA:	BF519E7E	LDA $7E9E51,X  ; Party number
C3/7ACE:	1F437BC3	ORA $C37B43,X  ; Add roster slot
C3/7AD2:	85E2    	STA $E2        ; Memorize it
C3/7AD4:	64E3    	STZ $E3        ; Clear row...
C3/7AD6:	800F    	BRA $7AE7      ; Swap positions

Fork: Get party info of actor B
C3/7AD8:	A8      	TAY            ; Index actor B
C3/7AD9:	B95018  	LDA $1850,Y    ; Party info
C3/7ADC:	29DF    	AND #$DF       ; Discard row
C3/7ADE:	85E2    	STA $E2        ; Memorize it
C3/7AE0:	B95018  	LDA $1850,Y    ; Party info
C3/7AE3:	2920    	AND #$20       ; Isolate row
C3/7AE5:	85E3    	STA $E3        ; Memorize it

Fork: Swap slot positions
C3/7AE7:	A5E0    	LDA $E0        ; Actor A info
C3/7AE9:	2940    	AND #$40       ; Object is on?
C3/7AEB:	D008    	BNE $7AF5      ; Branch if so
C3/7AED:	A5E2    	LDA $E2        ; Actor B info
C3/7AEF:	2940    	AND #$40       ; Object is on?
C3/7AF1:	D01B    	BNE $7B0E      ; Branch if so
C3/7AF3:	8030    	BRA $7B25      ; Swap menu slots

Fork: Update party info for actor A
C3/7AF5:	7B      	TDC            ; ...
C3/7AF6:	A528    	LDA $28        ; Chosen slot A
C3/7AF8:	18      	CLC            ; Prepare ADC
C3/7AF9:	6549    	ADC $49        ; +16 if on party
C3/7AFB:	655B    	ADC $5B        ; Always 0...
C3/7AFD:	AA      	TAX            ; Index sum
C3/7AFE:	BF899D7E	LDA $7E9D89,X  ; Actor in slot A
C3/7B02:	30E9    	BMI $7AED      ; Branch if none
C3/7B04:	AA      	TAX            ; Index it
C3/7B05:	A5E2    	LDA $E2        ; Actor B info
C3/7B07:	05E1    	ORA $E1        ; Add A's row
C3/7B09:	9D5018  	STA $1850,X    ; Set A's info
C3/7B0C:	80DF    	BRA $7AED      ; Repeat for B

Fork: Update party info for actor B
C3/7B0E:	7B      	TDC            ; ...
C3/7B0F:	A54B    	LDA $4B        ; Chosen slot B
C3/7B11:	18      	CLC            ; Prepare ADC
C3/7B12:	654A    	ADC $4A        ; +16 if on party
C3/7B14:	655A    	ADC $5A        ; Always 0...
C3/7B16:	AA      	TAX            ; Index sum
C3/7B17:	BF899D7E	LDA $7E9D89,X  ; Actor in slot B
C3/7B1B:	3008    	BMI $7B25      ; Branch if none
C3/7B1D:	AA      	TAX            ; Index it
C3/7B1E:	A5E0    	LDA $E0        ; Actor A info
C3/7B20:	05E3    	ORA $E3        ; Add B's row
C3/7B22:	9D5018  	STA $1850,X    ; Set B's info

Fork: Swap slot contents
C3/7B25:	7B      	TDC            ; ...
C3/7B26:	A54B    	LDA $4B        ; Chosen slot B
C3/7B28:	18      	CLC            ; Prepare ADC
C3/7B29:	654A    	ADC $4A        ; +16 if in party
C3/7B2B:	655A    	ADC $5A        ; Always 0...
C3/7B2D:	AA      	TAX            ; Index sum
C3/7B2E:	A5E5    	LDA $E5        ; Actor in slot A
C3/7B30:	9F899D7E	STA $7E9D89,X  ; Put in slot B
C3/7B34:	A528    	LDA $28        ; Chosen slot A
C3/7B36:	18      	CLC            ; Prepare ADC
C3/7B37:	6549    	ADC $49        ; +16 if in party
C3/7B39:	655B    	ADC $5B        ; Always 0...
C3/7B3B:	AA      	TAX            ; Index sum
C3/7B3C:	A5E6    	LDA $E6        ; Actor in slot B
C3/7B3E:	9F899D7E	STA $7E9D89,X  ; Put in slot A
C3/7B42:	60      	RTS

Roster position and object status for Lineup menu slots
C3/7B43:	40      	; Non-party slot 1
C3/7B44:	40      	; Non-party slot 2
C3/7B45:	40      	; Non-party slot 3
C3/7B46:	40      	; Non-party slot 4
C3/7B47:	40      	; Non-party slot 5
C3/7B48:	40      	; Non-party slot 6
C3/7B49:	40      	; Non-party slot 7
C3/7B4A:	40      	; Non-party slot 8
C3/7B4B:	40      	; Non-party slot 9
C3/7B4C:	40      	; Non-party slot 10
C3/7B4D:	40      	; Non-party slot 11
C3/7B4E:	40      	; Non-party slot 12
C3/7B4F:	40      	; Non-party slot 13
C3/7B50:	40      	; Non-party slot 14
C3/7B51:	40      	; Non-party slot 15
C3/7B52:	40      	; Non-party slot 16
C3/7B53:	40      	; Party 1, NW
C3/7B54:	48      	; Party 1, SW
C3/7B55:	50      	; Party 1, NE
C3/7B56:	58      	; Party 1, SE
C3/7B57:	40      	; Party 2, NW
C3/7B58:	48      	; Party 2, SW
C3/7B59:	50      	; Party 2, NE
C3/7B5A:	58      	; Party 2, SE
C3/7B5B:	40      	; Party 3, NW
C3/7B5C:	48      	; Party 3, SW
C3/7B5D:	50      	; Party 3, NE
C3/7B5E:	58      	; Party 3, SE
C3/7B5F:	40      	; Party 4, NW (unused)
C3/7B60:	48      	; Party 4, SW (unused)
C3/7B61:	50      	; Party 4, NE (unused)
C3/7B62:	58      	; Party 4, SE (unused)
C3/7B63:	40      	; Party 5, NW (unused)
C3/7B64:	48      	; Party 5, SW (unused)
C3/7B65:	50      	; Party 5, NE (unused)
C3/7B66:	58      	; Party 5, SE (unused)
C3/7B67:	40      	; Party 6, NW (unused)
C3/7B68:	48      	; Party 6, SW (unused)
C3/7B69:	50      	; Party 6, NE (unused)
C3/7B6A:	58      	; Party 6, SE (unused)
C3/7B6B:	40      	; Party 7, NW (unused)
C3/7B6C:	48      	; Party 7, SW (unused)
C3/7B6D:	50      	; Party 7, NE (unused)
C3/7B6E:	58      	; Party 7, SE (unused)

Load nav data for party area of Lineup menu, relocate cursor
C3/7B6F:	A54D    	LDA $4D        ; Cursor column
C3/7B71:	855E    	STA $5E        ; Set as former
C3/7B73:	AD0102  	LDA $0201      ; Group count
C3/7B76:	297F    	AND #$7F       ; Clear flag
C3/7B78:	C901    	CMP #$01       ; One group?
C3/7B7A:	F00D    	BEQ $7B89      ; Branch if so
C3/7B7C:	C902    	CMP #$02       ; Two groups?
C3/7B7E:	F019    	BEQ $7B99      ; Branch if so

Fork: Three groups
C3/7B80:	20437C  	JSR $7C43      ; Load navig data
C3/7B83:	20C67B  	JSR $7BC6      ; Set cursor column
C3/7B86:	4C4C7C  	JMP $7C4C      ; Relocate cursor

Fork: One group
C3/7B89:	20257C  	JSR $7C25      ; Load navig data
C3/7B8C:	A55E    	LDA $5E        ; Old cursor column
C3/7B8E:	C901    	CMP #$01       ; First column?
C3/7B90:	9002    	BCC $7B94      ; Retain it if so
C3/7B92:	A901    	LDA #$01       ; Column: 2nd
C3/7B94:	854D    	STA $4D        ; Set new column
C3/7B96:	4C2E7C  	JMP $7C2E      ; Relocate cursor

Fork: Two groups
C3/7B99:	20347C  	JSR $7C34      ; Load navig data
C3/7B9C:	A55E    	LDA $5E        ; Old cursor column
C3/7B9E:	C903    	CMP #$03       ; Within first 3?
C3/7BA0:	9002    	BCC $7BA4      ; Retain it if so
C3/7BA2:	A903    	LDA #$03       ; Column: 4th
C3/7BA4:	854D    	STA $4D        ; Set new column
C3/7BA6:	4C3D7C  	JMP $7C3D      ; Relocate cursor

Handle D-Pad for Lineup menu
C3/7BA9:	A54A    	LDA $4A        ; In party area?
C3/7BAB:	F016    	BEQ $7BC3      ; Branch if not
C3/7BAD:	AD0102  	LDA $0201      ; Group count
C3/7BB0:	297F    	AND #$7F       ; Clear flag
C3/7BB2:	C901    	CMP #$01       ; One group?
C3/7BB4:	F00A    	BEQ $7BC0      ; Branch if so
C3/7BB6:	C902    	CMP #$02       ; Two groups?
C3/7BB8:	F003    	BEQ $7BBD      ; Branch if so
C3/7BBA:	4C497C  	JMP $7C49      ; Handle D-Pad

Fork: Area with two groups
C3/7BBD:	4C3A7C  	JMP $7C3A      ; Handle D-Pad

Fork: Area with one group
C3/7BC0:	4C2B7C  	JMP $7C2B      ; Handle D-Pad

Fork: Non-party area
C3/7BC3:	4C1C7C  	JMP $7C1C      ; Handle D-Pad

Adjust cursor column upon entering 3-party area of Lineup menu
C3/7BC6:	A55E    	LDA $5E        ; Former column
C3/7BC8:	A600    	LDX $00        ; Column index: 0
C3/7BCA:	DFFA7BC3	CMP $C37BFA,X  ; On this column?
C3/7BCE:	F008    	BEQ $7BD8      ; Relocate if so
C3/7BD0:	E8      	INX            ; Index +1
C3/7BD1:	E8      	INX            ; Index +1
C3/7BD2:	E01000  	CPX #$0010     ; Done 8 columns?
C3/7BD5:	D0F3    	BNE $7BCA      ; Loop if not
C3/7BD7:	60      	RTS            ; Exit
C3/7BD8:	E8      	INX            ; Index +1
C3/7BD9:	BFFA7BC3	LDA $C37BFA,X  ; Intended column
C3/7BDD:	854D    	STA $4D        ; Set new column
C3/7BDF:	60      	RTS

Adjust cursor column upon leaving 3-party area of Lineup menu
C3/7BE0:	A55E    	LDA $5E        ; Former column
C3/7BE2:	A600    	LDX $00        ; Column index: 0
C3/7BE4:	DF0A7CC3	CMP $C37C0A,X  ; On this column?
C3/7BE8:	F008    	BEQ $7BF2      ; Relocate if so
C3/7BEA:	E8      	INX            ; Index +1
C3/7BEB:	E8      	INX            ; Index +1
C3/7BEC:	E00C00  	CPX #$000C     ; Done 6 columns?
C3/7BEF:	D0F3    	BNE $7BE4      ; Loop if not
C3/7BF1:	60      	RTS            ; Exit
C3/7BF2:	E8      	INX            ; Index +1
C3/7BF3:	BF0A7CC3	LDA $C37C0A,X  ; Intended column
C3/7BF7:	854D    	STA $4D        ; Set new column
C3/7BF9:	60      	RTS

New cursor column upon entering 3-party area of Lineup menu
C3/7BFA:	00 00   	; 1 -> 1
C3/7BFC:	01 01   	; 2 -> 2
C3/7BFE:	02 01   	; 3 -> 2
C3/7C00:	03 02   	; 4 -> 3
C3/7C02:	04 03   	; 5 -> 4
C3/7C04:	05 04   	; 6 -> 5
C3/7C06:	06 04   	; 7 -> 5
C3/7C08:	07 05   	; 8 -> 6

New cursor column upon leaving 3-party area of Lineup menu
C3/7C0A:	00 00   	; 1 -> 1
C3/7C0C:	01 01   	; 2 -> 2
C3/7C0E:	02 03   	; 3 -> 4
C3/7C10:	03 04   	; 4 -> 5
C3/7C12:	04 06   	; 5 -> 7
C3/7C14:	05 07   	; 6 -> 8

Load navigation data for non-party area of Lineup menu
C3/7C16:	A0527C  	LDY #$7C52     ; C3/7C52
C3/7C19:	4C8106  	JMP $0681      ; Load navig data

Handle D-Pad for non-party area of Lineup menu
C3/7C1C:	20B007  	JSR $07B0      ; Handle D-Pad
C3/7C1F:	A0577C  	LDY #$7C57     ; C3/7C57
C3/7C22:	4CC306  	JMP $06C3      ; Relocate cursor

Load navigation data for single-party area of Lineup menu
C3/7C25:	A0777C  	LDY #$7C77     ; C3/7C77
C3/7C28:	4C8106  	JMP $0681      ; Load navig data

Handle D-Pad for single-party area of Lineup menu
C3/7C2B:	20B007  	JSR $07B0      ; Handle D-Pad
C3/7C2E:	A07C7C  	LDY #$7C7C     ; C3/7C7C
C3/7C31:	4CBA06  	JMP $06BA      ; Relocate cursor

Load navigation data for two-party area of Lineup menu
C3/7C34:	A0847C  	LDY #$7C84     ; C3/7C84
C3/7C37:	4C8106  	JMP $0681      ; Load navig data

Handle D-Pad for two-party area of Lineup menu
C3/7C3A:	20B007  	JSR $07B0      ; Handle D-Pad
C3/7C3D:	A0897C  	LDY #$7C89     ; C3/7C89
C3/7C40:	4CBA06  	JMP $06BA      ; Relocate cursor

Load navigation data for three-party area of Lineup menu
C3/7C43:	A0997C  	LDY #$7C99     ; C3/7C99
C3/7C46:	4C8106  	JMP $0681      ; Load navig data

Handle D-Pad for three-party area of Lineup menu
C3/7C49:	20B007  	JSR $07B0      ; Handle D-Pad
C3/7C4C:	A09E7C  	LDY #$7C9E     ; C3/7C9E
C3/7C4F:	4CBA06  	JMP $06BA      ; Relocate cursor

Navigation data for non-party area of Lineup menu
C3/7C52:	81      	; Never wraps
C3/7C53:	00      	; Initial column
C3/7C54:	00      	; Initial row
C3/7C55:	08      	; 8 columns
C3/7C56:	02      	; 2 rows

Cursor positions for non-party area of Lineup menu
C3/7C57:	0864    	; Slot 1
C3/7C59:	2464    	; Slot 2
C3/7C5B:	4064    	; Slot 3
C3/7C5D:	5C64    	; Slot 4
C3/7C5F:	7864    	; Slot 5
C3/7C61:	9464    	; Slot 6
C3/7C63:	B064    	; Slot 7
C3/7C65:	CC64    	; Slot 8
C3/7C67:	0880    	; Slot 9
C3/7C69:	2480    	; Slot 10
C3/7C6B:	4080    	; Slot 11
C3/7C6D:	5C80    	; Slot 12
C3/7C6F:	7880    	; Slot 13
C3/7C71:	9480    	; Slot 14
C3/7C73:	B080    	; Slot 15
C3/7C75:	CC80    	; Slot 16

Navigation data for single-party area of Lineup menu
C3/7C77:	81      	; Never wraps
C3/7C78:	00      	; Initial column
C3/7C79:	00      	; Initial row
C3/7C7A:	02      	; 2 columns
C3/7C7B:	02      	; 2 rows

Cursor positions for single-party area of Lineup menu
C3/7C7C:	08A4    	; NW
C3/7C7E:	28A4    	; NE
C3/7C80:	08C0    	; SW
C3/7C82:	28C0    	; SE

Navigation data for two-party area of Lineup menu
C3/7C84:	81      	; Never wraps
C3/7C85:	00      	; Initial column
C3/7C86:	00      	; Initial row
C3/7C87:	04      	; 4 columns
C3/7C88:	02      	; 2 rows

Cursor positions for two-party area of Lineup menu
C3/7C89:	08A4    	; Party 1, NW
C3/7C8B:	28A4    	; Party 1, NE
C3/7C8D:	58A4    	; Party 2, NW
C3/7C8F:	78A4    	; Party 2, NE
C3/7C91:	08C0    	; Party 1, SW
C3/7C93:	28C0    	; Party 1, SE
C3/7C95:	58C0    	; Party 2, SW
C3/7C97:	78C0    	; Party 2, SE

Navigation data for three-party area of Lineup menu
C3/7C99:	81      	; Never wraps
C3/7C9A:	00      	; Initial column
C3/7C9B:	00      	; Initial row
C3/7C9C:	06      	; 6 columns
C3/7C9D:	02      	; 2 rows

Cursor positions for three-party area of Lineup menu
C3/7C9E:	08A4    	; Party 1, NW
C3/7CA0:	28A4    	; Party 1, NE
C3/7CA2:	58A4    	; Party 2, NW
C3/7CA4:	78A4    	; Party 2, NE
C3/7CA6:	A8A4    	; Party 3, NW
C3/7CA8:	C8A4    	; Party 3, NE
C3/7CAA:	08C0    	; Party 1, SW
C3/7CAC:	28C0    	; Party 1, SE
C3/7CAE:	58C0    	; Party 2, SW
C3/7CB0:	78C0    	; Party 2, SE
C3/7CB2:	A8C0    	; Party 3, SW
C3/7CB4:	C8C0    	; Party 3, SE

Draw Lineup menu windows and uppermost text
C3/7CB6:	A0347D  	LDY #$7D34     ; C3/7D34
C3/7CB9:	20C403  	JSR $03C4      ; Draw stats box
C3/7CBC:	A0307D  	LDY #$7D30     ; C3/7D30
C3/7CBF:	20C403  	JSR $03C4      ; Draw bottom box
C3/7CC2:	A0387D  	LDY #$7D38     ; C3/7D38
C3/7CC5:	20C403  	JSR $03C4      ; Draw middle box
C3/7CC8:	A03C7D  	LDY #$7D3C     ; C3/7D3C
C3/7CCB:	20C403  	JSR $03C4      ; Draw message box
C3/7CCE:	A02C7D  	LDY #$7D2C     ; C3/7D2C
C3/7CD1:	20C403  	JSR $03C4      ; Draw title box
C3/7CD4:	20067D  	JSR $7D06      ; Draw party boxes
C3/7CD7:	20BD0E  	JSR $0EBD      ; Upload windows
C3/7CDA:	20F37C  	JSR $7CF3      ; Clear BG3 map A
C3/7CDD:	20D90E  	JSR $0ED9      ; Upload BG3 A+B
C3/7CE0:	20A971  	JSR $71A9      ; Clear BG1 map A
C3/7CE3:	A924    	LDA #$24       ; Palette 1
C3/7CE5:	8529    	STA $29        ; Color: Blue
C3/7CE7:	A03D82  	LDY #$823D     ; Text pointer
C3/7CEA:	202603  	JSR $0326      ; Draw "Lineup"
C3/7CED:	20F67C  	JSR $7CF6      ; Draw "Form..."
C3/7CF0:	4C930E  	JMP $0E93      ; Upload BG1 A+B

Clear BG3 tilemap A
C3/7CF3:	4CD071  	JMP $71D0      ; Clear BG3 map A

Draw "Form <#> group(s)."
C3/7CF6:	A920    	LDA #$20       ; Palette 0
C3/7CF8:	8529    	STA $29        ; Color: User's
C3/7CFA:	A02982  	LDY #$8229     ; Text pointer
C3/7CFD:	202603  	JSR $0326      ; Draw "Form..."
C3/7D00:	A22939  	LDX #$3929     ; Tilemap pointer
C3/7D03:	4C8B7D  	JMP $7D8B      ; Draw group count

Draw party windows for Lineup menu
C3/7D06:	7B      	TDC            ; Clear A
C3/7D07:	AD0102  	LDA $0201      ; Group count
C3/7D0A:	297F    	AND #$7F       ; Clear flag
C3/7D0C:	0A      	ASL A          ; Double it
C3/7D0D:	AA      	TAX            ; Index it
C3/7D0E:	7C117D  	JMP ($7D11,X)  ; Draw windows

Jump table for the above
C3/7D11:	0000    	; Bogus...
C3/7D13:	257D    	; 1 group
C3/7D15:	1F7D    	; 2 groups
C3/7D17:	197D    	; 3 groups

Draw 3 party windows for Lineup menu
C3/7D19:	A0487D  	LDY #$7D48     ; C3/7D48
C3/7D1C:	20C403  	JSR $03C4      ; Draw party 3 box

Draw 2 party windows for Lineup menu
C3/7D1F:	A0447D  	LDY #$7D44     ; C3/7D44
C3/7D22:	20C403  	JSR $03C4      ; Draw party 2 box

Draw 1 party window for Lineup menu
C3/7D25:	A0407D  	LDY #$7D40     ; C3/7D40
C3/7D28:	20C403  	JSR $03C4      ; Draw party 1 box
C3/7D2B:	60      	RTS

Window layout for Lineup menu
C3/7D2C:	8B580602	; 08x04 at $588B (Title)
C3/7D30:	CB5C1C07	; 30x09 at $5CCB (Parties)
C3/7D34:	8B591C05	; 30x07 at $598B (Stats)
C3/7D38:	0B5B1C06	; 30x08 at $5B0B (Candidates)
C3/7D3C:	9B581402	; 22x04 at $589B (Messages)
C3/7D40:	0B5D0806	; 10x08 at $5D0B (Party 1)
C3/7D44:	1F5D0806	; 10x08 at $5D1F (Party 2)
C3/7D48:	335D0806	; 10x08 at $5D33 (Party 3)

Update displayed actor info in Lineup menu
C3/7D4C:	A906    	LDA #$06       ; Status icons: Temp
C3/7D4E:	0447    	TSB $47        ; Set menu flag
C3/7D50:	20B683  	JSR $83B6      ; Queue face upload
C3/7D53:	203584  	JSR $8435      ; Load face colors
C3/7D56:	4CE780  	JMP $80E7      ; Draw actor info

Set to condense text in Lineup menu
C3/7D59:	A902    	LDA #$02       ; 1Rx2B to PPU
C3/7D5B:	8D5043  	STA $4350      ; Set DMA mode
C3/7D5E:	A90E    	LDA #$0E       ; $210E
C3/7D60:	8D5143  	STA $4351      ; To BG1 V-Scroll
C3/7D63:	A0787D  	LDY #$7D78     ; C3/7D78
C3/7D66:	8C5243  	STY $4352      ; Set CH5 src LBs
C3/7D69:	A9C3    	LDA #$C3       ; Bank: C3
C3/7D6B:	8D5443  	STA $4354      ; Set CH5 src HB
C3/7D6E:	A9C3    	LDA #$C3       ; ...
C3/7D70:	8D5743  	STA $4357      ; Set indir HB
C3/7D73:	A920    	LDA #$20       ; Channel: 5
C3/7D75:	0443    	TSB $43        ; Queue HDMA-5
C3/7D77:	60      	RTS

Text shifting table for the above
C3/7D78:	20 0200 	; Title
C3/7D7B:	08 0000 	; Nothing
C3/7D7E:	0B 0400 	; Nothing
C3/7D81:	0C 0800 	; Level
C3/7D84:	0C 0C00 	; HP
C3/7D87:	0C 1000 	; MP
C3/7D8A:	00      	; End

Draw number of required groups for Lineup menu
C3/7D8B:	7B      	TDC            ; Clear A
C3/7D8C:	AD0102  	LDA $0201      ; Event data
C3/7D8F:	2907    	AND #$07       ; Group count
C3/7D91:	18      	CLC            ; Prepare ADC
C3/7D92:	6953    	ADC #$53       ; Turn into text
C3/7D94:	85F9    	STA $F9        ; Add to string
C3/7D96:	64FA    	STZ $FA        ; End string
C3/7D98:	86F7    	STX $F7        ; Set position
C3/7D9A:	A0F700  	LDY #$00F7     ; 00/00F7
C3/7D9D:	84E7    	STY $E7        ; Set src LBs
C3/7D9F:	A900    	LDA #$00       ; Bank: 00
C3/7DA1:	85E9    	STA $E9        ; Set src HB
C3/7DA3:	20FF02  	JSR $02FF      ; Draw value
C3/7DA6:	60      	RTS

List members and create actors after changes in Lineup menu
C3/7DA7:	A9FF    	LDA #$FF       ; Actor: None
C3/7DA9:	A600    	LDX $00        ; Member slot: 1
C3/7DAB:	9F999D7E	STA $7E9D99,X  ; Clear slot
C3/7DAF:	E8      	INX            ; Point to next
C3/7DB0:	E09000  	CPX #$0090     ; Done 7 parties?
C3/7DB3:	D0F6    	BNE $7DAB      ; Loop if not
C3/7DB5:	207E7E  	JSR $7E7E      ; Compile members
C3/7DB8:	20E77F  	JSR $7FE7      ; Create members
C3/7DBB:	4C177E  	JMP $7E17      ; And candidates

List and create actors in Lineup menu, define locked slots
C3/7DBE:	A9FF    	LDA #$FF       ; Actor: None
C3/7DC0:	A600    	LDX $00        ; Menu slot: 1
C3/7DC2:	9F899D7E	STA $7E9D89,X  ; Clear slot
C3/7DC6:	E8      	INX            ; Point to next
C3/7DC7:	E0A000  	CPX #$00A0     ; Done party 7?
C3/7DCA:	D0F6    	BNE $7DC2      ; Loop if not
C3/7DCC:	A2899D  	LDX #$9D89     ; 7E/9D89
C3/7DCF:	8E8121  	STX $2181      ; Set WRAM LBs
C3/7DD2:	AD0102  	LDA $0201      ; Forced members?
C3/7DD5:	3022    	BMI $7DF9      ; Branch if not

Fork: Compile candidates, etc.
C3/7DD7:	A600    	LDX $00        ; 1st: Terra
C3/7DD9:	BD5018  	LDA $1850,X    ; Party info
C3/7DDC:	2940    	AND #$40       ; Object's off?
C3/7DDE:	F00B    	BEQ $7DEB      ; Skip if so
C3/7DE0:	BD5018  	LDA $1850,X    ; Party info
C3/7DE3:	2907    	AND #$07       ; In a party?
C3/7DE5:	D004    	BNE $7DEB      ; Skip if so
C3/7DE7:	8A      	TXA            ; Actor's slot
C3/7DE8:	8D8021  	STA $2180      ; Add to list
C3/7DEB:	E8      	INX            ; Actor slot +1
C3/7DEC:	E01000  	CPX #$0010     ; Done all 16?
C3/7DEF:	D0E8    	BNE $7DD9      ; Loop if not
C3/7DF1:	A9FF    	LDA #$FF       ; Null value
C3/7DF3:	8D8021  	STA $2180      ; End list
C3/7DF6:	4C0B7E  	JMP $7E0B      ; Make/lock chars

Fork: Clear assigned party for all actors
C3/7DF9:	A600    	LDX $00        ; 1st: Terra
C3/7DFB:	BD5018  	LDA $1850,X    ; Party info
C3/7DFE:	29F8    	AND #$F8       ; Clear party
C3/7E00:	9D5018  	STA $1850,X    ; Save changes
C3/7E03:	E8      	INX            ; Actor slot +1
C3/7E04:	E01000  	CPX #$0010     ; Done all 16?
C3/7E07:	D0F2    	BNE $7DFB      ; Loop if not
C3/7E09:	80CC    	BRA $7DD7      ; Create actors

List members, create actors, and define locked slots in Lineup menu
C3/7E0B:	207E7E  	JSR $7E7E      ; Compile members
C3/7E0E:	20E77F  	JSR $7FE7      ; Create members
C3/7E11:	20177E  	JSR $7E17      ; And candidates
C3/7E14:	4CA080  	JMP $80A0      ; Set locked slots

Create all candidates in Lineup menu
C3/7E17:	A600    	LDX $00        ; Menu slot: 1
C3/7E19:	7B      	TDC            ; Clear A
C3/7E1A:	BF899D7E	LDA $7E9D89,X  ; Actor in slot
C3/7E1E:	3033    	BMI $7E53      ; Skip if none
C3/7E20:	DA      	PHX            ; Save slot
C3/7E21:	48      	PHA            ; Save actor
C3/7E22:	A900    	LDA #$00       ; ...
C3/7E24:	48      	PHA            ; ...
C3/7E25:	AB      	PLB            ; ...
C3/7E26:	A902    	LDA #$02       ; Min slot: 16
C3/7E28:	A0F381  	LDY #$81F3     ; C3/81F3
C3/7E2B:	20DE11  	JSR $11DE      ; Queue OAM fn
C3/7E2E:	9B      	TXY            ; Queue index
C3/7E2F:	7B      	TDC            ; Clear A
C3/7E30:	68      	PLA            ; Actor
C3/7E31:	9FC9357E	STA $7E35C9,X  ; Save for arrow
C3/7E35:	207F80  	JSR $807F      ; Set anim ptr
C3/7E38:	FA      	PLX            ; Menu slot
C3/7E39:	BF5E7EC3	LDA $C37E5E,X  ; X position
C3/7E3D:	99CA33  	STA $33CA,Y    ; Set sprite's
C3/7E40:	BF6E7EC3	LDA $C37E6E,X  ; Y position
C3/7E44:	994A34  	STA $344A,Y    ; Set sprite's
C3/7E47:	7B      	TDC            ; Clear A
C3/7E48:	99CB33  	STA $33CB,Y    ; No use...
C3/7E4B:	994B34  	STA $344B,Y    ; No use...
C3/7E4E:	A9D8    	LDA #$D8       ; Bank: D8
C3/7E50:	99CA35  	STA $35CA,Y    ; Set ptr HB
C3/7E53:	E8      	INX            ; Menu slot +1
C3/7E54:	E01000  	CPX #$0010     ; Done top 16?
C3/7E57:	D0C0    	BNE $7E19      ; Loop if not
C3/7E59:	A900    	LDA #$00       ; Zero A
C3/7E5B:	48      	PHA            ; Put on stack
C3/7E5C:	AB      	PLB            ; Set DB to 0
C3/7E5D:	60      	RTS

X positions for candidates in Lineup menu
C3/7E5E:	18      	; Slot 1
C3/7E5F:	34      	; Slot 2
C3/7E60:	50      	; Slot 3
C3/7E61:	6C      	; Slot 4
C3/7E62:	88      	; Slot 5
C3/7E63:	A4      	; Slot 6
C3/7E64:	C0      	; Slot 7
C3/7E65:	DC      	; Slot 8
C3/7E66:	18      	; Slot 9
C3/7E67:	34      	; Slot 10
C3/7E68:	50      	; Slot 11
C3/7E69:	6C      	; Slot 12
C3/7E6A:	88      	; Slot 13
C3/7E6B:	A4      	; Slot 14
C3/7E6C:	C0      	; Slot 15
C3/7E6D:	DC      	; Slot 16

Y positions for candidates in Lineup menu
C3/7E6E:	5C      	; Slot 1
C3/7E6F:	5C      	; Slot 2
C3/7E70:	5C      	; Slot 3
C3/7E71:	5C      	; Slot 4
C3/7E72:	5C      	; Slot 5
C3/7E73:	5C      	; Slot 6
C3/7E74:	5C      	; Slot 7
C3/7E75:	5C      	; Slot 8
C3/7E76:	78      	; Slot 9
C3/7E77:	78      	; Slot 10
C3/7E78:	78      	; Slot 11
C3/7E79:	78      	; Slot 12
C3/7E7A:	78      	; Slot 13
C3/7E7B:	78      	; Slot 14
C3/7E7C:	78      	; Slot 15
C3/7E7D:	78      	; Slot 16

List members by ID and choice, link each menu slot to a party
C3/7E7E:	A2B99D  	LDX #$9DB9     ; 7E/9DB9
C3/7E81:	86E7    	STX $E7        ; Set WRAM LBs
C3/7E83:	AD0102  	LDA $0201      ; Event data
C3/7E86:	2907    	AND #$07       ; Group count
C3/7E88:	85E6    	STA $E6        ; Set counter
C3/7E8A:	A901    	LDA #$01       ; Party: 1st
C3/7E8C:	85E0    	STA $E0        ; Set current
C3/7E8E:	A6E7    	LDX $E7        ; WRAM adr LBs
C3/7E90:	8E8121  	STX $2181      ; Set register
C3/7E93:	A600    	LDX $00        ; 1st: Terra
C3/7E95:	BD5018  	LDA $1850,X    ; Party info
C3/7E98:	2940    	AND #$40       ; Object's off?
C3/7E9A:	F00D    	BEQ $7EA9      ; Skip if so
C3/7E9C:	BD5018  	LDA $1850,X    ; Party info
C3/7E9F:	2907    	AND #$07       ; Isolate party
C3/7EA1:	C5E0    	CMP $E0        ; Matches ours?
C3/7EA3:	D004    	BNE $7EA9      ; Skip if not
C3/7EA5:	8A      	TXA            ; Actor slot
C3/7EA6:	8D8021  	STA $2180      ; Add to list
C3/7EA9:	E8      	INX            ; Actor slot +1
C3/7EAA:	E01000  	CPX #$0010     ; Done all 16?
C3/7EAD:	D0E6    	BNE $7E95      ; Loop if not
C3/7EAF:	A9FF    	LDA #$FF       ; Null value
C3/7EB1:	8D8021  	STA $2180      ; End party list
C3/7EB4:	C220    	REP #$20       ; 16-bit A
C3/7EB6:	A5E7    	LDA $E7        ; WRAM adr LBs
C3/7EB8:	18      	CLC            ; Prepare ADC
C3/7EB9:	691000  	ADC #$0010     ; To next party
C3/7EBC:	85E7    	STA $E7        ; Save changes
C3/7EBE:	E220    	SEP #$20       ; 8-bit A
C3/7EC0:	E6E0    	INC $E0        ; Actual party +1
C3/7EC2:	C6E6    	DEC $E6        ; One less left
C3/7EC4:	D0C8    	BNE $7E8E      ; Loop till last
C3/7EC6:	20CC7E  	JSR $7ECC      ; Sort by choice
C3/7EC9:	4C967F  	JMP $7F96      ; Mark all slots

Sort members by player choice, merge into a unified list
C3/7ECC:	AD0102  	LDA $0201      ; Event data
C3/7ECF:	2907    	AND #$07       ; Group count
C3/7ED1:	85E6    	STA $E6        ; Set counter
C3/7ED3:	A600    	LDX $00        ; 1st: Party 1
C3/7ED5:	A97E    	LDA #$7E       ; Bank: 7E
C3/7ED7:	85E9    	STA $E9        ; Set dest HB
C3/7ED9:	C220    	REP #$20       ; 16-bit A
C3/7EDB:	BF7A7FC3	LDA $C37F7A,X  ; Party RAM adr
C3/7EDF:	85E7    	STA $E7        ; Set dest LBs
C3/7EE1:	BF7C7FC3	LDA $C37F7C,X  ; Source index
C3/7EE5:	DA      	PHX            ; Save dst index
C3/7EE6:	AA      	TAX            ; Index source
C3/7EE7:	E220    	SEP #$20       ; 8-bit A
C3/7EE9:	20AC82  	JSR $82AC      ; Sort party
C3/7EEC:	FA      	PLX            ; Dst index
C3/7EED:	E8      	INX            ; Dst index +1
C3/7EEE:	E8      	INX            ; Dst index +1
C3/7EEF:	E8      	INX            ; Dst index +1
C3/7EF0:	E8      	INX            ; Dst index +1
C3/7EF1:	C6E6    	DEC $E6        ; One less group
C3/7EF3:	D0E0    	BNE $7ED5      ; Loop till last

Fork: Merge sorted lists
C3/7EF5:	A2999D  	LDX #$9D99     ; 7E/9D99
C3/7EF8:	8E8121  	STX $2181      ; Set WRAM LBs
C3/7EFB:	AD0102  	LDA $0201      ; Group count
C3/7EFE:	297F    	AND #$7F       ; Clear flag
C3/7F00:	C901    	CMP #$01       ; One group?
C3/7F02:	F066    	BEQ $7F6A      ; Branch if so
C3/7F04:	C902    	CMP #$02       ; Two groups?
C3/7F06:	F04F    	BEQ $7F57      ; Branch if so

Fork: Add groups 1-3
C3/7F08:	20577F  	JSR $7F57      ; Add groups 1+2
C3/7F0B:	A600    	LDX $00        ; Member slot: 1
C3/7F0D:	BFE19D7E	LDA $7E9DE1,X  ; Actor in slot
C3/7F11:	8D8021  	STA $2180      ; Add to list
C3/7F14:	E8      	INX            ; Member slot +1
C3/7F15:	E00400  	CPX #$0004     ; Done 4 slots?
C3/7F18:	D0F3    	BNE $7F0D      ; Loop if not

Fork: Add group 4 (useless...)
C3/7F1A:	A600    	LDX $00        ; Member slot: 1
C3/7F1C:	BFF19D7E	LDA $7E9DF1,X  ; Actor in slot
C3/7F20:	8D8021  	STA $2180      ; Add to list
C3/7F23:	E8      	INX            ; Member slot +1
C3/7F24:	E00400  	CPX #$0004     ; Done 4 slots?
C3/7F27:	D0F3    	BNE $7F1C      ; Loop if not

Fork: Add group 5 (useless...)
C3/7F29:	A600    	LDX $00        ; Member slot: 1
C3/7F2B:	BF019E7E	LDA $7E9E01,X  ; Actor in slot
C3/7F2F:	8D8021  	STA $2180      ; Add to list
C3/7F32:	E8      	INX            ; Member slot +1
C3/7F33:	E00400  	CPX #$0004     ; Done 4 slots?
C3/7F36:	D0F3    	BNE $7F2B      ; Loop if not

Fork: Add group 6 (useless...)
C3/7F38:	A600    	LDX $00        ; Member slot: 1
C3/7F3A:	BF119E7E	LDA $7E9E11,X  ; Actor in slot
C3/7F3E:	8D8021  	STA $2180      ; Add to list
C3/7F41:	E8      	INX            ; Member slot +1
C3/7F42:	E00400  	CPX #$0004     ; Done 4 slots?
C3/7F45:	D0F3    	BNE $7F3A      ; Loop if not

Fork: Add group 7 (useless...)
C3/7F47:	A600    	LDX $00        ; Member slot: 1
C3/7F49:	BF219E7E	LDA $7E9E21,X  ; Actor in slot
C3/7F4D:	8D8021  	STA $2180      ; Add to list
C3/7F50:	E8      	INX            ; Member slot +1
C3/7F51:	E00400  	CPX #$0004     ; Done 4 slots?
C3/7F54:	D0F3    	BNE $7F49      ; Loop if not
C3/7F56:	60      	RTS

Fork: Add groups 1 and 2
C3/7F57:	206A7F  	JSR $7F6A      ; Add group 1
C3/7F5A:	A600    	LDX $00        ; Member slot: 1
C3/7F5C:	BFD19D7E	LDA $7E9DD1,X  ; Actor in slot
C3/7F60:	8D8021  	STA $2180      ; Add to list
C3/7F63:	E8      	INX            ; Member slot +1
C3/7F64:	E00400  	CPX #$0004     ; Done 4 slots?
C3/7F67:	D0F3    	BNE $7F5C      ; Loop if not
C3/7F69:	60      	RTS

Fork: Add group 1
C3/7F6A:	A600    	LDX $00        ; Member slot: 1
C3/7F6C:	BFC19D7E	LDA $7E9DC1,X  ; Actor in slot
C3/7F70:	8D8021  	STA $2180      ; Add to list
C3/7F73:	E8      	INX            ; Member slot +1
C3/7F74:	E00400  	CPX #$0004     ; Done 4 slots?
C3/7F77:	D0F3    	BNE $7F6C      ; Loop if not
C3/7F79:	60      	RTS

Source and destination for sorting a party (ID -> choice)
C3/7F7A:	C19D3000	; P1: $9DB9 -> $9DC1
C3/7F7E:	D19D4000	; P2: $9DC9 -> $9DD1
C3/7F82:	E19D5000	; P3: $9DD9 -> $9DE1
C3/7F86:	F19D6000	; P4: $9DE9 -> $9DF1 (unused)
C3/7F8A:	019E7000	; P5: $9DF9 -> $9E01 (unused)
C3/7F8E:	119E8000	; P6: $9E09 -> $9E11 (unused)
C3/7F92:	219E9000	; P7: $9E19 -> $9E21 (unused)

Assign a party number to each slot in Lineup menu
C3/7F96:	A2519E  	LDX #$9E51     ; 7E/9E51
C3/7F99:	8E8121  	STX $2181      ; Set WRAM LBs
C3/7F9C:	A910    	LDA #$10       ; Candidates: 16
C3/7F9E:	9C8021  	STZ $2180      ; Slot: No party
C3/7FA1:	3A      	DEC A          ; One less slot
C3/7FA2:	D0FA    	BNE $7F9E      ; Loop till last
C3/7FA4:	AD0102  	LDA $0201      ; Event data
C3/7FA7:	2907    	AND #$07       ; Group count
C3/7FA9:	C901    	CMP #$01       ; One group?
C3/7FAB:	F020    	BEQ $7FCD      ; Branch if so
C3/7FAD:	C902    	CMP #$02       ; Two groups?
C3/7FAF:	F021    	BEQ $7FD2      ; Branch if so
C3/7FB1:	20D27F  	JSR $7FD2      ; Do group 1+2
C3/7FB4:	A903    	LDA #$03       ; Group: 3
C3/7FB6:	20DA7F  	JSR $7FDA      ; Mark 4 slots
C3/7FB9:	A904    	LDA #$04       ; Group: 4...
C3/7FBB:	20DA7F  	JSR $7FDA      ; Mark 4 slots
C3/7FBE:	A905    	LDA #$05       ; Group: 5...
C3/7FC0:	20DA7F  	JSR $7FDA      ; Mark 4 slots
C3/7FC3:	A906    	LDA #$06       ; Group: 6...
C3/7FC5:	20DA7F  	JSR $7FDA      ; Mark 4 slots
C3/7FC8:	A907    	LDA #$07       ; Group: 7...
C3/7FCA:	4CDA7F  	JMP $7FDA      ; Mark 4 slots

Fork: 1 group
C3/7FCD:	A901    	LDA #$01       ; Group: 1
C3/7FCF:	4CDA7F  	JMP $7FDA      ; Mark 4 slots

Fork: 2 groups
C3/7FD2:	20CD7F  	JSR $7FCD      ; Do group 1
C3/7FD5:	A902    	LDA #$02       ; Group: 2
C3/7FD7:	4CDA7F  	JMP $7FDA      ; ...
C3/7FDA:	8D8021  	STA $2180      ; Mark slot A
C3/7FDD:	8D8021  	STA $2180      ; Mark slot B
C3/7FE0:	8D8021  	STA $2180      ; Mark slot C
C3/7FE3:	8D8021  	STA $2180      ; Mark slot D
C3/7FE6:	60      	RTS

Create all party members in Lineup menu
C3/7FE7:	AD0102  	LDA $0201      ; Event data
C3/7FEA:	2907    	AND #$07       ; Group count
C3/7FEC:	85E6    	STA $E6        ; Set counter
C3/7FEE:	A2C19D  	LDX #$9DC1     ; 7E/9DC1
C3/7FF1:	86F3    	STX $F3        ; Set src LBs
C3/7FF3:	A97E    	LDA #$7E       ; Bank: 7E
C3/7FF5:	85F5    	STA $F5        ; Set src HB
C3/7FF7:	AD1242  	LDA $4212      ; PPU status
C3/7FFA:	2940    	AND #$40       ; H-Blank?
C3/7FFC:	F0F9    	BEQ $7FF7      ; Loop if not
C3/7FFE:	A599    	LDA $99        ; Always 0...
C3/8000:	8D1B21  	STA $211B      ; Set matrix A LB
C3/8003:	9C1B21  	STZ $211B      ; Clear HB
C3/8006:	A9B0    	LDA #$B0       ; 176
C3/8008:	8D1C21  	STA $211C      ; Set matrix B
C3/800B:	8D1C21  	STA $211C      ; ...
C3/800E:	AE3421  	LDX $2134      ; Product LB
C3/8011:	86E4    	STX $E4        ; Set base X

Fork: Handle current party
C3/8013:	A600    	LDX $00        ; Member slot: 1
C3/8015:	7B      	TDC            ; Clear A
C3/8016:	9B      	TXY            ; Member slot
C3/8017:	B7F3    	LDA [$F3],Y    ; Actor in slot
C3/8019:	85F6    	STA $F6        ; ...
C3/801B:	3037    	BMI $8054      ; Skip if nobody
C3/801D:	DA      	PHX            ; Save slot
C3/801E:	48      	PHA            ; Save actor
C3/801F:	A900    	LDA #$00       ; ...
C3/8021:	48      	PHA            ; ...
C3/8022:	AB      	PLB            ; ...
C3/8023:	A902    	LDA #$02       ; Min slot: 16
C3/8025:	A0C982  	LDY #$82C9     ; C3/82C9
C3/8028:	20DE11  	JSR $11DE      ; Queue OAM fn
C3/802B:	9B      	TXY            ; Queue index
C3/802C:	7B      	TDC            ; Clear A
C3/802D:	68      	PLA            ; Actor in slot
C3/802E:	9FC9357E	STA $7E35C9,X  ; Put in queue
C3/8032:	207F80  	JSR $807F      ; Set anim ptr
C3/8035:	FA      	PLX            ; Member slot
C3/8036:	7B      	TDC            ; Clear A
C3/8037:	BF7780C3	LDA $C38077,X  ; Relative X
C3/803B:	C221    	REP #$21       ; 16-bit A; C-
C3/803D:	65E4    	ADC $E4        ; Add base X
C3/803F:	99CA33  	STA $33CA,Y    ; Set ally's X
C3/8042:	E220    	SEP #$20       ; 8-bit A
C3/8044:	BF7B80C3	LDA $C3807B,X  ; Y position
C3/8048:	994A34  	STA $344A,Y    ; Set ally's
C3/804B:	7B      	TDC            ; Clear A
C3/804C:	994B34  	STA $344B,Y    ; No use...
C3/804F:	A9D8    	LDA #$D8       ; Bank: D8
C3/8051:	99CA35  	STA $35CA,Y    ; Set ptr HB
C3/8054:	E8      	INX            ; Member slot +1
C3/8055:	E00400  	CPX #$0004     ; Done all 4?
C3/8058:	D0BB    	BNE $8015      ; Loop if not

Fork: Handle next party
C3/805A:	C220    	REP #$20       ; 16-bit A
C3/805C:	A5F3    	LDA $F3        ; Party list adr
C3/805E:	18      	CLC            ; Prepare ADC
C3/805F:	691000  	ADC #$0010     ; To next party
C3/8062:	85F3    	STA $F3        ; Save changes
C3/8064:	A5E4    	LDA $E4        ; Base X pos
C3/8066:	18      	CLC            ; Prepare ADC
C3/8067:	695000  	ADC #$0050     ; Go 80 px right
C3/806A:	85E4    	STA $E4        ; Save changes
C3/806C:	E220    	SEP #$20       ; 8-bit A
C3/806E:	C6E6    	DEC $E6        ; One less group
C3/8070:	D0A1    	BNE $8013      ; Loop till last
C3/8072:	A900    	LDA #$00       ; Clear A
C3/8074:	48      	PHA            ; Put on stack
C3/8075:	AB      	PLB            ; Set DB to 0
C3/8076:	60      	RTS

Relative X positions for party members in Lineup menu
C3/8077:	18      	; NW
C3/8078:	18      	; SW
C3/8079:	38      	; NE
C3/807A:	38      	; SE

Y positions for party members in Lineup menu
C3/807B:	9C      	; NW
C3/807C:	B8      	; SW
C3/807D:	9C      	; NE
C3/807E:	B8      	; SE

Load pointer to actor's animation table
C3/807F:	0A      	ASL A          ; Actor x2
C3/8080:	AA      	TAX            ; Index it
C3/8081:	C220    	REP #$20       ; 16-bit A
C3/8083:	BFDB70C3	LDA $C370DB,X  ; Actor address
C3/8087:	AA      	TAX            ; Index it
C3/8088:	E220    	SEP #$20       ; 8-bit A
C3/808A:	7B      	TDC            ; Clear A
C3/808B:	BD0100  	LDA $0001,X    ; Sprite set
C3/808E:	0A      	ASL A          ; Double it
C3/808F:	AA      	TAX            ; Index it
C3/8090:	A97E    	LDA #$7E       ; Bank: 7E
C3/8092:	48      	PHA            ; Put on stack
C3/8093:	AB      	PLB            ; Set DB to 7E
C3/8094:	C220    	REP #$20       ; 16-bit A
C3/8096:	BFA1E9D8	LDA $D8E9A1,X  ; Anim table ptr
C3/809A:	99C932  	STA $32C9,Y    ; Set sprite's
C3/809D:	E220    	SEP #$20       ; 8-bit A
C3/809F:	60      	RTS

Establish locked actor slots in Lineup menu
C3/80A0:	A28DAC  	LDX #$AC8D     ; 7E/AC8D
C3/80A3:	8E8121  	STX $2181      ; Set WRAM LBs
C3/80A6:	7B      	TDC            ; Clear A
C3/80A7:	AA      	TAX            ; Menu slot: 1
C3/80A8:	DA      	PHX            ; Save menu slot
C3/80A9:	7B      	TDC            ; Clear A
C3/80AA:	BF899D7E	LDA $7E9D89,X  ; Actor in slot
C3/80AE:	3017    	BMI $80C7      ; Unlock if none
C3/80B0:	C220    	REP #$20       ; 16-bit A
C3/80B2:	0A      	ASL A          ; Double it
C3/80B3:	AA      	TAX            ; Index it
C3/80B4:	BF9683C3	LDA $C38396,X  ; Actor slot bit
C3/80B8:	85E7    	STA $E7        ; Memorize it
C3/80BA:	AD0202  	LDA $0202      ; Forced actors
C3/80BD:	25E7    	AND $E7        ; Slot holds one?
C3/80BF:	E220    	SEP #$20       ; 8-bit A
C3/80C1:	F004    	BEQ $80C7      ; Unlock if not
C3/80C3:	A9FF    	LDA #$FF       ; Slot: Locked
C3/80C5:	8001    	BRA $80C8      ; Skip a line
C3/80C7:	7B      	TDC            ; Slot: Unlocked
C3/80C8:	8D8021  	STA $2180      ; Set slot status
C3/80CB:	FA      	PLX            ; Current slot
C3/80CC:	E8      	INX            ; Point to next
C3/80CD:	E02C00  	CPX #$002C     ; Done all slots?
C3/80D0:	D0D6    	BNE $80A8      ; Loop if not
C3/80D2:	60      	RTS

Initialize and load portrait for Lineup menu
C3/80D3:	6428    	STZ $28        ; Portr slot: 1
C3/80D5:	206C82  	JSR $826C      ; Init object
C3/80D8:	A92F    	LDA #$2F       ; Y: 47
C3/80DA:	9F4A347E	STA $7E344A,X  ; Set object's
C3/80DE:	201715  	JSR $1517      ; Upload graphics
C3/80E1:	20B683  	JSR $83B6      ; Queue updating
C3/80E4:	4C3584  	JMP $8435      ; Load palette

Draw actor info in Lineup menu
C3/80E7:	204081  	JSR $8140      ; Erase BG1 text
C3/80EA:	7B      	TDC            ; ...
C3/80EB:	A54B    	LDA $4B        ; Cursor slot
C3/80ED:	18      	CLC            ; Prepare ADC
C3/80EE:	654A    	ADC $4A        ; +16 if in party
C3/80F0:	655A    	ADC $5A        ; Always 0...
C3/80F2:	AA      	TAX            ; Index sum
C3/80F3:	BF899D7E	LDA $7E9D89,X  ; Actor in slot
C3/80F7:	3046    	BMI $813F      ; Exit if nobody
C3/80F9:	85C9    	STA $C9        ; Memorize it
C3/80FB:	0A      	ASL A          ; Double it
C3/80FC:	AA      	TAX            ; Index it
C3/80FD:	C220    	REP #$20       ; 16-bit A
C3/80FF:	BFDB70C3	LDA $C370DB,X  ; Actor's address
C3/8103:	8567    	STA $67        ; Memorize it
C3/8105:	E220    	SEP #$20       ; 8-bit A
C3/8107:	A924    	LDA #$24       ; Palette 1
C3/8109:	8529    	STA $29        ; Color: Blue
C3/810B:	A25D81  	LDX #$815D     ; Text ptrs loc
C3/810E:	A00600  	LDY #$0006     ; Strings: 3
C3/8111:	202C71  	JSR $712C      ; Draw "LV/HP/MP"
C3/8114:	A01B3A  	LDY #$3A1B     ; Class/KO pos
C3/8117:	A24830  	LDX #$3048     ; Icon position
C3/811A:	A901    	LDA #$01       ; Anim mode: 1
C3/811C:	8548    	STA $48        ; Set for icons
C3/811E:	20C234  	JSR $34C2      ; Do class/status
C3/8121:	A09B3A  	LDY #$3A9B     ; Text position
C3/8124:	206A35  	JSR $356A      ; Draw actor name
C3/8127:	A01B3B  	LDY #$3B1B     ; Text position
C3/812A:	20AE35  	JSR $35AE      ; Draw held esper
C3/812D:	A07281  	LDY #$8172     ; Text pointer
C3/8130:	20F902  	JSR $02F9      ; Draw HP's "/"
C3/8133:	A07681  	LDY #$8176     ; Text pointer
C3/8136:	20F902  	JSR $02F9      ; Draw MP's "/"
C3/8139:	A27A81  	LDX #$817A     ; Coords tbl ptr
C3/813C:	20D70C  	JSR $0CD7      ; Draw LV, HP, MP
C3/813F:	60      	RTS

Erase actor info on BG1 in Lineup menu
C3/8140:	A2C001  	LDX #$01C0     ; 7E/3A09
C3/8143:	C220    	REP #$20       ; 16-bit A
C3/8145:	7B      	TDC            ; Clear A
C3/8146:	A500    	LDA $00        ; ...
C3/8148:	A06000  	LDY #$0060     ; Tiles: 192
C3/814B:	9F49387E	STA $7E3849,X  ; Clear tile
C3/814F:	E8      	INX            ; Index +1
C3/8150:	E8      	INX            ; Index +1
C3/8151:	9F49387E	STA $7E3849,X  ; Clear tile
C3/8155:	E8      	INX            ; Index +1
C3/8156:	E8      	INX            ; Index +1
C3/8157:	88      	DEY            ; 2 less tiles
C3/8158:	D0F1    	BNE $814B      ; Loop till 0
C3/815A:	E220    	SEP #$20       ; 8-bit A
C3/815C:	60      	RTS

Text pointers for Lineup menu
C3/815D:	6381    	; LV
C3/815F:	6881    	; HP
C3/8161:	6D81    	; MP

Positioned text for Lineup menu
C3/8163:	6D3A 2B3500	; LV
C3/8168:	ED3A 272F00	; HP
C3/816D:	6D3B 2C2F00	; MP
C3/8172:	FB3A CE00	; /
C3/8176:	7B3B CE00	; /

Tilemap pointers for stats in Lineup menu
C3/817A:	773A    	; LV
C3/817C:	F33A    	; HP
C3/817E:	FD3A    	; Max HP
C3/8180:	733B    	; MP
C3/8182:	7D3B    	; Max MP

67: Queue fade-out for Lineup menu
C3/8184:	20EA30  	JSR $30EA      ; Queue fade-out
C3/8187:	A00800  	LDY #$0008     ; Frames: 8
C3/818A:	8420    	STY $20        ; Set fade timer
C3/818C:	A968    	LDA #$68       ; C3/81A2
C3/818E:	8526    	STA $26        ; Next: Wait
C3/8190:	4C4C7D  	JMP $7D4C      ; Update char info

66: Queue fade-in for Lineup menu
C3/8193:	20F130  	JSR $30F1      ; Queue fade-in
C3/8196:	A00800  	LDY #$0008     ; Frames: 8
C3/8199:	8420    	STY $20        ; Set fade timer
C3/819B:	A968    	LDA #$68       ; C3/81A2
C3/819D:	8526    	STA $26        ; Next: Wait
C3/819F:	4C4C7D  	JMP $7D4C      ; Update char info

68: Wait while Lineup menu fades in or out
C3/81A2:	A420    	LDY $20        ; Timer expired?
C3/81A4:	D004    	BNE $81AA      ; Branch if not
C3/81A6:	A527    	LDA $27        ; Queued command
C3/81A8:	8526    	STA $26        ; Execute it next
C3/81AA:	4C4C7D  	JMP $7D4C      ; Update char info

Update arrow for gear data menu
C3/81AD:	AA      	TAX            ; Index mode
C3/81AE:	7CB181  	JMP ($81B1,X)  ; Handle mode

Jump table for the above
C3/81B1:	B581    	; Initialize arrow
C3/81B3:	D281    	; Sustain arrow

Mode 0: Initialize arrow
C3/81B5:	A62D    	LDX $2D        ; Queue index
C3/81B7:	C220    	REP #$20       ; 16-bit A
C3/81B9:	A9F9EC  	LDA #$ECF9     ; Anim table ptr
C3/81BC:	9DC932  	STA $32C9,X    ; Set sprite's
C3/81BF:	A90800  	LDA #$0008     ; X: 8
C3/81C2:	9DCA33  	STA $33CA,X    ; Set sprite's
C3/81C5:	E220    	SEP #$20       ; 8-bit A
C3/81C7:	A9D8    	LDA #$D8       ; Bank: D8
C3/81C9:	9DCA35  	STA $35CA,X    ; Set ptr HB
C3/81CC:	FE4936  	INC $3649,X    ; Mode +1
C3/81CF:	207112  	JSR $1271      ; Set pose timer

Mode 1: Sustain arrow
C3/81D2:	A42D    	LDY $2D        ; Queue index
C3/81D4:	A599    	LDA $99        ; Arrow status
C3/81D6:	F007    	BEQ $81DF      ; Hide if bogus
C3/81D8:	3017    	BMI $81F1      ; Delete if off
C3/81DA:	7B      	TDC            ; Clear A
C3/81DB:	A902    	LDA #$02       ; Sprite: Normal
C3/81DD:	8001    	BRA $81E0      ; Skip a line
C3/81DF:	7B      	TDC            ; Sprite: Blank
C3/81E0:	AA      	TAX            ; Index A
C3/81E1:	C220    	REP #$20       ; 16-bit A
C3/81E3:	BFF5ECD8	LDA $D8ECF5,X  ; Anim table ptr
C3/81E7:	99C932  	STA $32C9,Y    ; Set sprite's
C3/81EA:	E220    	SEP #$20       ; ...
C3/81EC:	208C12  	JSR $128C      ; Define OAM
C3/81EF:	38      	SEC            ; Set to requeue
C3/81F0:	60      	RTS            ; Exit
C3/81F1:	18      	CLC            ; Set to dequeue
C3/81F2:	60      	RTS

Update Lineup or Colosseum candidate, or enemy Shadow
C3/81F3:	AA      	TAX            ; Index mode
C3/81F4:	7CF781  	JMP ($81F7,X)  ; Handle mode

Jump table for the above
C3/81F7:	FB81    	; Initialize sprite
C3/81F9:	0C82    	; Sustain sprite

Mode 0: Initialize sprite
C3/81FB:	A901    	LDA #$01       ; Hide actors: N
C3/81FD:	0447    	TSB $47        ; Set menu flag
C3/81FF:	A62D    	LDX $2D        ; Queue index
C3/8201:	FE4936  	INC $3649,X    ; Mode +1
C3/8204:	A901    	LDA #$01       ; ...
C3/8206:	207112  	JSR $1271      ; Set pose timer
C3/8209:	203583  	JSR $8335      ; No arrow...

Mode 1: Sustain sprite
C3/820C:	A547    	LDA $47        ; Menu flags
C3/820E:	2901    	AND #$01       ; Remove actors?
C3/8210:	F007    	BEQ $8219      ; Delete if so
C3/8212:	A62D    	LDX $2D        ; Queue index
C3/8214:	208C12  	JSR $128C      ; Define OAM
C3/8217:	38      	SEC            ; Set to requeue
C3/8218:	60      	RTS            ; Exit
C3/8219:	18      	CLC            ; Set to dequeue
C3/821A:	60      	RTS

69: Erase warning in Lineup menu after delay
C3/821B:	A520    	LDA $20        ; Delay expired?
C3/821D:	D007    	BNE $8226      ; Branch if not
C3/821F:	A92D    	LDA #$2D       ; C3/78FC
C3/8221:	8526    	STA $26        ; Next: Choice 1
C3/8223:	20F67C  	JSR $7CF6      ; Draw "Form..."
C3/8226:	4C4C7D  	JMP $7D4C      ; Update char info

Positioned text, "Form   group(s).      "
C3/8229:	DD38 49C584C6C5BBFF83FF836FBD856F3F758D00

Positioned text, "Lineup"
C3/823D:	CF38 67B97B8D00

Positioned text, "You need   group(s)!"
C3/8244:	DD38 49C584C6C59B6B392BFF838BA99D7BB9C900

Positioned text, "No one there!       "
C3/8258:	DD38 3FADA58D9D7BB9C9FFFFFFFFFFFFFFFFFF00

Create portrait for Lineup menu
C3/826C:	A903    	LDA #$03       ; Min slot: 24
C3/826E:	A07D0B  	LDY #$0B7D     ; C3/0B7D
C3/8271:	20DE11  	JSR $11DE      ; Queue OAM fn
C3/8274:	8A      	TXA            ; Queue index
C3/8275:	8560    	STA $60        ; Set sprite's
C3/8277:	8B      	PHB            ; Save DB
C3/8278:	A97E    	LDA #$7E       ; Bank: 7E
C3/827A:	48      	PHA            ; Put on stack
C3/827B:	AB      	PLB            ; Set DB to 7E
C3/827C:	C220    	REP #$20       ; 16-bit A
C3/827E:	A91A00  	LDA #$001A     ; X: 26
C3/8281:	9DCA33  	STA $33CA,X    ; Set sprite's
C3/8284:	E220    	SEP #$20       ; 8-bit A
C3/8286:	7B      	TDC            ; ...
C3/8287:	A528    	LDA $28        ; Portrait slot
C3/8289:	209582  	JSR $8295      ; Load anim ptr
C3/828C:	7B      	TDC            ; Clear A
C3/828D:	9D4B34  	STA $344B,X    ; No use...
C3/8290:	207112  	JSR $1271      ; Set pose timer
C3/8293:	AB      	PLB            ; Restore DB
C3/8294:	60      	RTS

Load animation table address for portrait
C3/8295:	DA      	PHX            ; Queue index
C3/8296:	DA      	PHX            ; Push again
C3/8297:	0A      	ASL A          ; Port slot x2
C3/8298:	AA      	TAX            ; Index it
C3/8299:	C220    	REP #$20       ; 16-bit A
C3/829B:	BF540BC3	LDA $C30B54,X  ; Anim table ptr
C3/829F:	7A      	PLY            ; Queue index
C3/82A0:	99C932  	STA $32C9,Y    ; Set sprite's
C3/82A3:	E220    	SEP #$20       ; 8-bit A
C3/82A5:	A9C3    	LDA #$C3       ; Bank: C3
C3/82A7:	99CA35  	STA $35CA,Y    ; Set ptr HB
C3/82AA:	FA      	PLX            ; Queue index
C3/82AB:	60      	RTS

Sort members by actual order rather than actor slot
C3/82AC:	7B      	TDC            ; Clear A
C3/82AD:	BF899D7E	LDA $7E9D89,X  ; Actor slot
C3/82B1:	85E1    	STA $E1        ; Memorize it
C3/82B3:	3013    	BMI $82C8      ; Exit if none
C3/82B5:	DA      	PHX            ; List slot
C3/82B6:	AA      	TAX            ; Actor slot
C3/82B7:	BD5018  	LDA $1850,X    ; Party info
C3/82BA:	2918    	AND #$18       ; Roster slot
C3/82BC:	4A      	LSR A          ; Put in b2-b3
C3/82BD:	4A      	LSR A          ; Put in b1-b2
C3/82BE:	4A      	LSR A          ; Now 0-3
C3/82BF:	A8      	TAY            ; Index it
C3/82C0:	A5E1    	LDA $E1        ; Actor slot
C3/82C2:	97E7    	STA [$E7],Y    ; To new list
C3/82C4:	FA      	PLX            ; List slot
C3/82C5:	E8      	INX            ; List slot +1
C3/82C6:	80E4    	BRA $82AC      ; Do next slot
C3/82C8:	60      	RTS

Update conditional actor-related sprite
C3/82C9:	AA      	TAX            ; Index mode
C3/82CA:	7CCD82  	JMP ($82CD,X)  ; Handle mode

Jump table for the above
C3/82CD:	D982    	; Initialize sprite V1
C3/82CF:	ED82    	; Initialize sprite V2
C3/82D1:	F982    	; Initialize sprite V3
C3/82D3:	0583    	; Sustain sprite V1
C3/82D5:	1483    	; Sustain sprite V2
C3/82D7:	2883    	; Sustain sprite V3

Mode 0: Init Lineup member, non-Lineup status icon, or arrow under actor; create arrow under forced member
C3/82D9:	A901    	LDA #$01       ; Ax like OBJs: N
C3/82DB:	0447    	TSB $47        ; Set menu flag
C3/82DD:	A62D    	LDX $2D        ; Queue index
C3/82DF:	A903    	LDA #$03       ; Mode: 3
C3/82E1:	9D4936  	STA $3649,X    ; Set sprite's
C3/82E4:	207112  	JSR $1271      ; Set pose timer
C3/82E7:	7B      	TDC            ; Lineup member: Y
C3/82E8:	203583  	JSR $8335      ; Add Lineup arrow
C3/82EB:	8018    	BRA $8305      ; Define OAM

Mode 1: Init Colosseum challenger or Lineup status icon
C3/82ED:	A62D    	LDX $2D        ; Queue index
C3/82EF:	A904    	LDA #$04       ; Mode: 4
C3/82F1:	9D4936  	STA $3649,X    ; Set sprite's
C3/82F4:	207112  	JSR $1271      ; Set pose timer
C3/82F7:	801B    	BRA $8314      ; Define OAM

Mode 2: Init unknown sprite (unused)
C3/82F9:	A62D    	LDX $2D        ; Queue index
C3/82FB:	A905    	LDA #$05       ; Mode: 5
C3/82FD:	9D4936  	STA $3649,X    ; Set sprite's
C3/8300:	207112  	JSR $1271      ; Set pose timer
C3/8303:	8023    	BRA $8328      ; Define OAM

Mode 3: Sustain Lineup member, non-Lineup status icon, or arrow under actor
C3/8305:	A547    	LDA $47        ; Menu flags
C3/8307:	2901    	AND #$01       ; Ax like objects?
C3/8309:	F007    	BEQ $8312      ; Delete if so
C3/830B:	A62D    	LDX $2D        ; Queue index
C3/830D:	208C12  	JSR $128C      ; Define OAM
C3/8310:	38      	SEC            ; Set to requeue
C3/8311:	60      	RTS            ; Exit
C3/8312:	18      	CLC            ; Set to dequeue
C3/8313:	60      	RTS

Mode 4: Sustain Colosseum challenger or Lineup status icon
C3/8314:	A547    	LDA $47        ; Menu flags
C3/8316:	2902    	AND #$02       ; Temp sprite?
C3/8318:	F007    	BEQ $8321      ; Branch if not
C3/831A:	A62D    	LDX $2D        ; Queue index
C3/831C:	208C12  	JSR $128C      ; Define OAM
C3/831F:	18      	CLC            ; Set to dequeue
C3/8320:	60      	RTS            ; Exit
C3/8321:	A62D    	LDX $2D        ; Queue index
C3/8323:	208C12  	JSR $128C      ; Define OAM
C3/8326:	38      	SEC            ; Set to requeue
C3/8327:	60      	RTS

Mode 5: Sustain unknown sprite (unused)
C3/8328:	A547    	LDA $47        ; Menu flags
C3/832A:	2904    	AND #$04       ; Ax like objects?
C3/832C:	F0F3    	BEQ $8321      ; Branch if not
C3/832E:	A62D    	LDX $2D        ; Queue index
C3/8330:	208C12  	JSR $128C      ; Define OAM
C3/8333:	18      	CLC            ; Set to dequeue
C3/8334:	60      	RTS

Create large arrow under actor if forced into party
C3/8335:	85E6    	STA $E6        ; Save pose timer
C3/8337:	AD0002  	LDA $0200      ; Menu number
C3/833A:	C904    	CMP #$04       ; Lineup menu?
C3/833C:	D057    	BNE $8395      ; Exit if not
C3/833E:	A62D    	LDX $2D        ; Queue index
C3/8340:	7B      	TDC            ; Clear A
C3/8341:	BDC935  	LDA $35C9,X    ; Actor in slot
C3/8344:	304F    	BMI $8395      ; Exit if arrow
C3/8346:	0A      	ASL A          ; Double it
C3/8347:	C220    	REP #$20       ; 16-bit A
C3/8349:	AA      	TAX            ; Index it
C3/834A:	BF9683C3	LDA $C38396,X  ; Actor slot bit
C3/834E:	85E7    	STA $E7        ; Memorize it
C3/8350:	AD0202  	LDA $0202      ; Forced actors
C3/8353:	25E7    	AND $E7        ; Includes ours?
C3/8355:	E220    	SEP #$20       ; 8-bit A
C3/8357:	F03C    	BEQ $8395      ; Exit if not
C3/8359:	A900    	LDA #$00       ; Zero A
C3/835B:	48      	PHA            ; Put on stack
C3/835C:	AB      	PLB            ; Set DB to 0
C3/835D:	A5E6    	LDA $E6        ; Party member?
C3/835F:	D005    	BNE $8366      ; Branch if not
C3/8361:	A0C982  	LDY #$82C9     ; C3/82C9
C3/8364:	8003    	BRA $8369      ; Skip a line
C3/8366:	A0F381  	LDY #$81F3     ; C3/81F3
C3/8369:	A903    	LDA #$03       ; Min slot: 24
C3/836B:	20DE11  	JSR $11DE      ; Queue OAM fn
C3/836E:	A97E    	LDA #$7E       ; Bank: 7E
C3/8370:	48      	PHA            ; Put on stack
C3/8371:	AB      	PLB            ; Set DB to 7E
C3/8372:	A9FF    	LDA #$FF       ; Actor: None
C3/8374:	9DC935  	STA $35C9,X    ; For C3/8344
C3/8377:	BC4A37  	LDY $374A,X    ; Actor's index
C3/837A:	C220    	REP #$20       ; 16-bit A
C3/837C:	B9CA33  	LDA $33CA,Y    ; Actor's X
C3/837F:	9DCA33  	STA $33CA,X    ; Set arrow's
C3/8382:	B94A34  	LDA $344A,Y    ; Actor's Y
C3/8385:	9D4A34  	STA $344A,X    ; Set arrow's
C3/8388:	A933EC  	LDA #$EC33     ; Anim table ptr
C3/838B:	9DC932  	STA $32C9,X    ; Set arrow's
C3/838E:	E220    	SEP #$20       ; 8-bit A
C3/8390:	A9D8    	LDA #$D8       ; Bank: D8
C3/8392:	9DCA35  	STA $35CA,X    ; Set ptr HB
C3/8395:	60      	RTS

Bitfield for actor slots
C3/8396:	0100    	; Terra
C3/8398:	0200    	; Locke
C3/839A:	0400    	; Cyan
C3/839C:	0800    	; Shadow
C3/839E:	1000    	; Edgar
C3/83A0:	2000    	; Sabin
C3/83A2:	4000    	; Celes
C3/83A4:	8000    	; Strago
C3/83A6:	0001    	; Relm
C3/83A8:	0002    	; Setzer
C3/83AA:	0004    	; Mog
C3/83AC:	0008    	; Gau
C3/83AE:	0010    	; Gogo
C3/83B0:	0020    	; Umaro
C3/83B2:	0040    	; Guest 1
C3/83B4:	0080    	; Guest 2

Set to upload portrait for Lineup menu
C3/83B6:	A00026  	LDY #$2600     ; $2600
C3/83B9:	841B    	STY $1B        ; Set VRAM ptr
C3/83BB:	A02003  	LDY #$0320     ; Bytes: 800
C3/83BE:	8419    	STY $19        ; Set data size
C3/83C0:	7B      	TDC            ; Clear A
C3/83C1:	A54B    	LDA $4B        ; Cursor slot
C3/83C3:	18      	CLC            ; Prepare ADC
C3/83C4:	654A    	ADC $4A        ; +16 if on party
C3/83C6:	655A    	ADC $5A        ; Always 0...
C3/83C8:	AA      	TAX            ; Index sum
C3/83C9:	BF899D7E	LDA $7E9D89,X  ; Actor in slot
C3/83CD:	305C    	BMI $842B      ; Blank if none
C3/83CF:	8024    	BRA $83F5      ; Set source

Set to upload portrait A for Lineup group 5-8 (unused)
C3/83D1:	A00026  	LDY #$2600     ; $2600
C3/83D4:	841B    	STY $1B        ; Set VRAM ptr
C3/83D6:	800E    	BRA $83E6      ; Set source

Set to upload portrait B for Lineup group 5-8 (unused)
C3/83D8:	A00028  	LDY #$2800     ; $2800
C3/83DB:	841B    	STY $1B        ; Set VRAM ptr
C3/83DD:	8007    	BRA $83E6      ; Set source

Set to delete portrait B for Lineup group 5-8 (unused)
C3/83DF:	A00028  	LDY #$2800     ; $2800
C3/83E2:	841B    	STY $1B        ; Set VRAM ptr
C3/83E4:	8045    	BRA $842B      ; Set source

Fork: Set source for portrait B (unused part)
C3/83E6:	A02003  	LDY #$0320     ; Bytes: 800
C3/83E9:	8419    	STY $19        ; Set data size
C3/83EB:	7B      	TDC            ; Clear A
C3/83EC:	A54B    	LDA $4B        ; Cursor slot
C3/83EE:	AA      	TAX            ; Index it
C3/83EF:	BFA99D7E	LDA $7E9DA9,X  ; Actor in slot
C3/83F3:	3036    	BMI $842B      ; Blank if none
C3/83F5:	0A      	ASL A          ; Double it
C3/83F6:	AA      	TAX            ; Index it
C3/83F7:	C220    	REP #$20       ; 16-bit A
C3/83F9:	BFDB70C3	LDA $C370DB,X  ; Actor address
C3/83FD:	A8      	TAY            ; Index it
C3/83FE:	7B      	TDC            ; Clear A
C3/83FF:	E220    	SEP #$20       ; 8-bit A
C3/8401:	B91400  	LDA $0014,Y    ; Status
C3/8404:	2920    	AND #$20       ; Imp?
C3/8406:	F004    	BEQ $840C      ; Branch if not
C3/8408:	A90F    	LDA #$0F       ; Use Imp image
C3/840A:	800A    	BRA $8416      ; Ignore actor
C3/840C:	B90000  	LDA $0000,Y    ; Actor
C3/840F:	C901    	CMP #$01       ; Locke?
C3/8411:	F003    	BEQ $8416      ; Branch if so
C3/8413:	B90100  	LDA $0001,Y    ; Graphics set
C3/8416:	C220    	REP #$20       ; 16-bit A
C3/8418:	0A      	ASL A          ; Double it
C3/8419:	AA      	TAX            ; Index it
C3/841A:	BFAF76C3	LDA $C376AF,X  ; GFX pointer
C3/841E:	18      	CLC            ; ...
C3/841F:	69001D  	ADC #$1D00     ; Add base adr
C3/8422:	851D    	STA $1D        ; Set src LBs
C3/8424:	E220    	SEP #$20       ; 8-bit A
C3/8426:	A9ED    	LDA #$ED       ; Bank: ED
C3/8428:	851F    	STA $1F        ; Set src HB
C3/842A:	60      	RTS

Fork: Point to blank portrait
C3/842B:	A0519F  	LDY #$9F51     ; 7E/9F51
C3/842E:	841D    	STY $1D        ; Set src LBs
C3/8430:	A97E    	LDA #$7E       ; Bank: 7E
C3/8432:	851F    	STA $1F        ; Set src HB
C3/8434:	60      	RTS

Load portrait palette for Lineup menu
C3/8435:	A400    	LDY $00        ; Palette: 0
C3/8437:	5A      	PHY            ; Save dest
C3/8438:	7B      	TDC            ; Clear A
C3/8439:	A54B    	LDA $4B        ; Cursor slot
C3/843B:	18      	CLC            ; Prepare ADC
C3/843C:	654A    	ADC $4A        ; +16 if on party
C3/843E:	655A    	ADC $5A        ; Always 0...
C3/8440:	AA      	TAX            ; Index sum
C3/8441:	BF899D7E	LDA $7E9D89,X  ; Actor in slot
C3/8445:	1016    	BPL $845D      ; Branch if any
C3/8447:	7B      	TDC            ; Use Terra
C3/8448:	8013    	BRA $845D      ; Load palette

Load portrait A's palette for Lineup group 5-8 (unused)
C3/844A:	A400    	LDY $00        ; Palette: 0
C3/844C:	8003    	BRA $8451      ; Skip a line

Load portrait B's palette for Lineup group 5-8 (unused part)
C3/844E:	A02000  	LDY #$0020     ; Palette: 1
C3/8451:	5A      	PHY            ; Save dest
C3/8452:	7B      	TDC            ; Clear A
C3/8453:	A54B    	LDA $4B        ; Cursor slot
C3/8455:	AA      	TAX            ; Index it
C3/8456:	BFA99D7E	LDA $7E9DA9,X  ; Actor in slot
C3/845A:	1001    	BPL $845D      ; Branch if any
C3/845C:	7B      	TDC            ; Use Terra
C3/845D:	0A      	ASL A          ; Actor x2
C3/845E:	AA      	TAX            ; Index it
C3/845F:	C220    	REP #$20       ; 16-bit A
C3/8461:	BFDB70C3	LDA $C370DB,X  ; Actor's address
C3/8465:	A8      	TAY            ; Index it
C3/8466:	7B      	TDC            ; Clear A
C3/8467:	E220    	SEP #$20       ; 8-bit A
C3/8469:	A910    	LDA #$10       ; Colors: 16
C3/846B:	85E3    	STA $E3        ; Set counter
C3/846D:	B91400  	LDA $0014,Y    ; Status
C3/8470:	2920    	AND #$20       ; Imp?
C3/8472:	F004    	BEQ $8478      ; Branch if not
C3/8474:	A90F    	LDA #$0F       ; Use Imp data
C3/8476:	8003    	BRA $847B      ; Skip a line
C3/8478:	B90100  	LDA $0001,Y    ; Graphics set
C3/847B:	AA      	TAX            ; Index it
C3/847C:	BF9476C3	LDA $C37694,X  ; Palette number
C3/8480:	C220    	REP #$20       ; 16-bit A
C3/8482:	0A      	ASL A          ; x2
C3/8483:	0A      	ASL A          ; x4
C3/8484:	0A      	ASL A          ; x8
C3/8485:	0A      	ASL A          ; x16
C3/8486:	0A      	ASL A          ; x32
C3/8487:	AA      	TAX            ; Index it
C3/8488:	7A      	PLY            ; RAM index
C3/8489:	C220    	REP #$20       ; 16-bit A
C3/848B:	DA      	PHX            ; Save ROM index
C3/848C:	BF6058ED	LDA $ED5860,X  ; Portrait color
C3/8490:	BB      	TYX            ; RAM index
C3/8491:	9F49317E	STA $7E3149,X  ; To OBJ pal 0
C3/8495:	E220    	SEP #$20       ; 8-bit A
C3/8497:	FA      	PLX            ; ROM index
C3/8498:	E8      	INX            ; ROM index +1
C3/8499:	E8      	INX            ; ROM index +1
C3/849A:	C8      	INY            ; RAM index +1
C3/849B:	C8      	INY            ; RAM index +1
C3/849C:	C6E3    	DEC $E3        ; One less color
C3/849E:	D0E9    	BNE $8489      ; Loop till last
C3/84A0:	E220    	SEP #$20       ; 8-bit A
C3/84A2:	60      	RTS

Load navigation data for Item, Colosseum, or Sell menu
C3/84A3:	A0B284  	LDY #$84B2     ; C3/84B2
C3/84A6:	4C8106  	JMP $0681      ; Load navig data

Handle D-Pad for Item, Colosseum, or Sell menu
C3/84A9:	204889  	JSR $8948      ; Handle D-Pad
C3/84AC:	A0B784  	LDY #$84B7     ; C3/84B7
C3/84AF:	4CCB06  	JMP $06CB      ; Relocate cursor

Navigation data for Item, Colosseum, and Sell menus
C3/84B2:	01      	; Wraps horizontally
C3/84B3:	00      	; Initial column
C3/84B4:	00      	; Initial row
C3/84B5:	02      	; 2 columns
C3/84B6:	0A      	; 10 rows

Cursor positions for Item, Colosseum, and Sell menus
C3/84B7:	085C    	; Item 1
C3/84B9:	785C    	; Item 2
C3/84BB:	0868    	; Item 3
C3/84BD:	7868    	; Item 4
C3/84BF:	0874    	; Item 5
C3/84C1:	7874    	; Item 6
C3/84C3:	0880    	; Item 7
C3/84C5:	7880    	; Item 8
C3/84C7:	088C    	; Item 9
C3/84C9:	788C    	; Item 10
C3/84CB:	0898    	; Item 11
C3/84CD:	7898    	; Item 12
C3/84CF:	08A4    	; Item 13
C3/84D1:	78A4    	; Item 14
C3/84D3:	08B0    	; Item 15
C3/84D5:	78B0    	; Item 16
C3/84D7:	08BC    	; Item 17
C3/84D9:	78BC    	; Item 18
C3/84DB:	08C8    	; Item 19
C3/84DD:	78C8    	; Item 20

Load navigation data for rare item menu
C3/84DF:	A0EE84  	LDY #$84EE     ; C3/84EE
C3/84E2:	4C8106  	JMP $0681      ; Load navig data

Handle D-Pad for rare item menu
C3/84E5:	20B007  	JSR $07B0      ; Handle D-Pad
C3/84E8:	A0F384  	LDY #$84F3     ; C3/84F3
C3/84EB:	4CC306  	JMP $06C3      ; Relocate cursor

Navigation data for rare item menu
C3/84EE:	00      	; Wraps on all sides
C3/84EF:	00      	; Initial column
C3/84F0:	00      	; Initial row
C3/84F1:	03      	; 3 columns
C3/84F2:	0A      	; 10 rows

Cursor positions for rare item menu
C3/84F3:	085C    	; Item 1
C3/84F5:	505C    	; Item 2
C3/84F7:	985C    	; Item 3
C3/84F9:	0868    	; Item 4
C3/84FB:	5068    	; Item 5
C3/84FD:	9868    	; Item 6
C3/84FF:	0874    	; Item 7
C3/8501:	5074    	; Item 8
C3/8503:	9874    	; Item 9
C3/8505:	0880    	; Item 10
C3/8507:	5080    	; Item 11
C3/8509:	9880    	; Item 12
C3/850B:	088C    	; Item 13
C3/850D:	508C    	; Item 14
C3/850F:	988C    	; Item 15
C3/8511:	0898    	; Item 16
C3/8513:	5098    	; Item 17
C3/8515:	9898    	; Item 18
C3/8517:	08A4    	; Item 19
C3/8519:	50A4    	; Item 20
C3/851B:	98A4    	; Item 21
C3/851D:	08B0    	; Item 22
C3/851F:	50B0    	; Item 23
C3/8521:	98B0    	; Item 24
C3/8523:	08BC    	; Item 25
C3/8525:	50BC    	; Item 26
C3/8527:	98BC    	; Item 27
C3/8529:	08C8    	; Item 28
C3/852B:	50C8    	; Item 29
C3/852D:	98C8    	; Item 30

Load navigation data for Item menu options
C3/852F:	A04785  	LDY #$8547     ; C3/8547
C3/8532:	4C8106  	JMP $0681      ; Load navig data

Relocate cursor for Item menu options
C3/8535:	A04C85  	LDY #$854C     ; C3/854C
C3/8538:	4CC306  	JMP $06C3      ; Relocate cursor

Handle D-Pad for Item menu options
C3/853B:	20B007  	JSR $07B0      ; Handle D-Pad
C3/853E:	203585  	JSR $8535      ; Relocate cursor
C3/8541:	A44D    	LDY $4D        ; Cursor position
C3/8543:	8C3402  	STY $0234      ; To cursor memory
C3/8546:	60      	RTS

Navigation data for Item menu options
C3/8547:	01      	; Wraps horizontally
C3/8548:	00      	; Initial column
C3/8549:	00      	; Initial row
C3/854A:	03      	; 3 columns
C3/854B:	01      	; 1 row

Cursor positions for Item menu options
C3/854C:	4016    	; USE
C3/854E:	7016    	; ARRANGE
C3/8550:	A816    	; RARE

Draw Item menu with inventory; upload element graphics
C3/8552:	A901    	LDA #$01       ; 64x32 at $0000
C3/8554:	8D0721  	STA $2107      ; Set BG1 map loc
C3/8557:	A0D285  	LDY #$85D2     ; C3/85D2
C3/855A:	20C403  	JSR $03C4      ; Draw stats box A
C3/855D:	A0D685  	LDY #$85D6     ; C3/85D6
C3/8560:	20C403  	JSR $03C4      ; Draw stats box B
C3/8563:	A0C685  	LDY #$85C6     ; C3/85C6
C3/8566:	20C403  	JSR $03C4      ; Draw option box
C3/8569:	A0C285  	LDY #$85C2     ; C3/85C2
C3/856C:	20C403  	JSR $03C4      ; Draw title box
C3/856F:	A0CA85  	LDY #$85CA     ; C3/85CA
C3/8572:	20C403  	JSR $03C4      ; Draw desc box
C3/8575:	A0CE85  	LDY #$85CE     ; C3/85CE
C3/8578:	20C403  	JSR $03C4      ; Draw main box
C3/857B:	20BD0E  	JSR $0EBD      ; Upload windows
C3/857E:	20D071  	JSR $71D0      ; Clear BG3 map A
C3/8581:	20D571  	JSR $71D5      ; Clear BG3 map B
C3/8584:	20DA71  	JSR $71DA      ; Clear BG3 map C
C3/8587:	20DF71  	JSR $71DF      ; Clear BG3 map D
C3/858A:	A92C    	LDA #$2C       ; Palette 3
C3/858C:	8529    	STA $29        ; Color: Blue
C3/858E:	A0A094  	LDY #$94A0     ; Text pointer
C3/8591:	202603  	JSR $0326      ; Draw "Item"
C3/8594:	A920    	LDA #$20       ; Palette 0
C3/8596:	8529    	STA $29        ; Color: User's
C3/8598:	A29A94  	LDX #$949A     ; Text ptrs loc
C3/859B:	A00600  	LDY #$0006     ; Strings: 3
C3/859E:	204E71  	JSR $714E      ; Draw options
C3/85A1:	2080B0  	JSR $B080      ; Build desc map
C3/85A4:	2019B3  	JSR $B319      ; Upload elements
C3/85A7:	20AD71  	JSR $71AD      ; Clear BG1 map B
C3/85AA:	20BC85  	JSR $85BC      ; Draw inventory
C3/85AD:	20728A  	JSR $8A72      ; Desc; item count
C3/85B0:	20930E  	JSR $0E93      ; Upload BG1 A+B
C3/85B3:	20A10E  	JSR $0EA1      ; Upload BG1 B+C
C3/85B6:	20D90E  	JSR $0ED9      ; Upload BG3 A+B
C3/85B9:	4CE70E  	JMP $0EE7      ; Upload BG3 C+D

Draw inventory after clearing tilemap (Item, Colosseum, Sell)
C3/85BC:	20A971  	JSR $71A9      ; Clear BG1 map A
C3/85BF:	4C3787  	JMP $8737      ; Draw inventory

Window layout for Item menu and gear data menu
C3/85C2:	8B580402	; 06x04 at $588B (Title)
C3/85C6:	97581602	; 24x04 at $5897 (Options)
C3/85CA:	8B591C03	; 30x05 at $598B (Description)
C3/85CE:	CB5A1C0F	; 30x17 at $5ACB (Main)
C3/85D2:	AD600D18	; 15x26 at $60AD (Gear stats; L part)
C3/85D6:	85580118	; 03x26 at $5885 (Gear stats; R part)

Set to condense text in Item, Colosseum, or Sell menu
C3/85DA:	A902    	LDA #$02       ; 1Rx2B to PPU
C3/85DC:	8D5043  	STA $4350      ; Set CH5 mode
C3/85DF:	A912    	LDA #$12       ; $2112
C3/85E1:	8D5143  	STA $4351      ; To BG3 V-Scroll
C3/85E4:	A00687  	LDY #$8706     ; C3/8706
C3/85E7:	8C5243  	STY $4352      ; Set CH5 src LBs
C3/85EA:	A9C3    	LDA #$C3       ; Bank: C3
C3/85EC:	8D5443  	STA $4354      ; Set CH5 src HB
C3/85EF:	A9C3    	LDA #$C3       ; ...
C3/85F1:	8D5743  	STA $4357      ; Set indir HB
C3/85F4:	A920    	LDA #$20       ; Channel: 5
C3/85F6:	0443    	TSB $43        ; Queue HDMA-5
C3/85F8:	204486  	JSR $8644      ; Load BG1 V-Data
C3/85FB:	A600    	LDX $00        ; Index: 0
C3/85FD:	BF8986C3	LDA $C38689,X  ; BG1 H-Pan data
C3/8601:	9F099A7E	STA $7E9A09,X  ; Save in RAM
C3/8605:	E8      	INX            ; Index +1
C3/8606:	E00D00  	CPX #$000D     ; End of table?
C3/8609:	D0F2    	BNE $85FD      ; Loop if not
C3/860B:	A902    	LDA #$02       ; 1Rx2B to PPU
C3/860D:	8D6043  	STA $4360      ; Set CH6 mode
C3/8610:	A90D    	LDA #$0D       ; $210D
C3/8612:	8D6143  	STA $4361      ; To BG1 H-Scroll
C3/8615:	A0099A  	LDY #$9A09     ; 7E/9A09
C3/8618:	8C6243  	STY $4362      ; Set CH6 src LBs
C3/861B:	A97E    	LDA #$7E       ; Bank: 7E
C3/861D:	8D6443  	STA $4364      ; Set CH6 src HB
C3/8620:	A97E    	LDA #$7E       ; ...
C3/8622:	8D6743  	STA $4367      ; Set indir HB
C3/8625:	A902    	LDA #$02       ; 1Rx2B to PPU
C3/8627:	8D7043  	STA $4370      ; Set CH7 mode
C3/862A:	A90E    	LDA #$0E       ; $210E
C3/862C:	8D7143  	STA $4371      ; To BG1 V-Scroll
C3/862F:	A04998  	LDY #$9849     ; 7E/9849
C3/8632:	8C7243  	STY $4372      ; Set CH7 src LBs
C3/8635:	A97E    	LDA #$7E       ; Bank: 7E
C3/8637:	8D7443  	STA $4374      ; Set CH7 src HB
C3/863A:	A97E    	LDA #$7E       ; ...
C3/863C:	8D7743  	STA $4377      ; Set indir HB
C3/863F:	A9C0    	LDA #$C0       ; Channels: 6, 7
C3/8641:	0443    	TSB $43        ; Queue HDMA 6+7
C3/8643:	60      	RTS

Load BG1 vertical shift table for Item, Colosseum, or Sell menu
C3/8644:	A600    	LDX $00        ; Index: 0
C3/8646:	BF9686C3	LDA $C38696,X  ; Void's V-Data
C3/864A:	9F49987E	STA $7E9849,X  ; Save in RAM
C3/864E:	E8      	INX            ; Index +1
C3/864F:	E01200  	CPX #$0012     ; At items?
C3/8652:	D0F2    	BNE $8646      ; Loop if not
C3/8654:	BF9686C3	LDA $C38696,X  ; Scanline data
C3/8658:	9F49987E	STA $7E9849,X  ; Save in RAM
C3/865C:	E8      	INX            ; Index +1
C3/865D:	7B      	TDC            ; Clear A
C3/865E:	A549    	LDA $49        ; Top BG1 row
C3/8660:	0A      	ASL A          ; x2
C3/8661:	0A      	ASL A          ; x4
C3/8662:	0A      	ASL A          ; x8
C3/8663:	0A      	ASL A          ; x16
C3/8664:	29FF    	AND #$FF       ; ...
C3/8666:	C220    	REP #$20       ; 16-bit A
C3/8668:	18      	CLC            ; Prepare ADC
C3/8669:	7F9686C3	ADC $C38696,X  ; Add V-Pan data
C3/866D:	9F49987E	STA $7E9849,X  ; Save in RAM
C3/8671:	E220    	SEP #$20       ; 8-bit A
C3/8673:	E8      	INX            ; Index +1
C3/8674:	E8      	INX            ; Index +1
C3/8675:	E06C00  	CPX #$006C     ; Beyond items?
C3/8678:	D0DA    	BNE $8654      ; Loop if not
C3/867A:	BF9686C3	LDA $C38696,X  ; Void's V-Data
C3/867E:	9F49987E	STA $7E9849,X  ; Save in RAM
C3/8682:	E8      	INX            ; Index +1
C3/8683:	E07000  	CPX #$0070     ; End of table?
C3/8686:	D0F2    	BNE $867A      ; Loop if not
C3/8688:	60      	RTS

BG1 H-Shift table for inventory-style menus
C3/8689:	28 0001 	; Nothing
C3/868C:	2F 0001 	; Nothing
C3/868F:	78 0000 	; Items
C3/8692:	1E 0001 	; Nothing
C3/8695:	00      	; End

BG1 V-Shift table for inventory-style menus
C3/8696:	27 8000 	; Nothing?
C3/8699:	08 0000 	; Nothing?
C3/869C:	0C 0400 	; Nothing?
C3/869F:	0C 0800 	; Nothing?
C3/86A2:	08 8000 	; Nothing?
C3/86A5:	08 0000 	; Nothing?
C3/86A8:	04 ACFF 	; Item row 1
C3/86AB:	04 ACFF 	; Item row 2
C3/86AE:	04 ACFF 	; Item row 3
C3/86B1:	04 B0FF 	; Item row 4
C3/86B4:	04 B0FF 	; Item row 5
C3/86B7:	04 B0FF 	; Item row 6
C3/86BA:	04 B4FF 	; Item row 7
C3/86BD:	04 B4FF 	; Item row 8
C3/86C0:	04 B4FF 	; Item row 9
C3/86C3:	04 B8FF 	; Item row 10
C3/86C6:	04 B8FF 	; Item row 11
C3/86C9:	04 B8FF 	; Item row 12
C3/86CC:	04 BCFF 	; Item row 13
C3/86CF:	04 BCFF 	; Item row 14
C3/86D2:	04 BCFF 	; Item row 15
C3/86D5:	04 C0FF 	; Item row 16
C3/86D8:	04 C0FF 	; Item row 17
C3/86DB:	04 C0FF 	; Item row 18
C3/86DE:	04 C4FF 	; Item row 19
C3/86E1:	04 C4FF 	; Item row 20
C3/86E4:	04 C4FF 	; Item row 21
C3/86E7:	04 C8FF 	; Item row 22
C3/86EA:	04 C8FF 	; Item row 23
C3/86ED:	04 C8FF 	; Item row 24
C3/86F0:	04 CCFF 	; Item row 25
C3/86F3:	04 CCFF 	; Item row 26
C3/86F6:	04 CCFF 	; Item row 27
C3/86F9:	04 D0FF 	; Item row 28
C3/86FC:	04 D0FF 	; Item row 29
C3/86FF:	04 D0FF 	; Item row 30
C3/8702:	1E 0000 	; Nothing
C3/8705:	00      	; End

BG3 V-Shift table for Item and Colosseum menus
C3/8706:	2F 0000 	; Title
C3/8709:	0C 0400 	; Desc row 1
C3/870C:	0C 0800 	; Desc row 2
C3/870F:	0C 0C00 	; 2-hand
C3/8712:	0C 1000 	; 50% Dmg
C3/8715:	0C 1400 	; Vigor
C3/8718:	0C 1800 	; Speed
C3/871B:	0C 1C00 	; Stamina
C3/871E:	0C 2000 	; Mag.Pwr
C3/8721:	0C 2400 	; Bat.Pwr
C3/8724:	0C 2800 	; Defense
C3/8727:	0C 2C00 	; Evade
C3/872A:	0C 3000 	; Mag.Def
C3/872D:	0C 3400 	; MBlock
C3/8730:	0C 3800 	; Nothing
C3/8733:	0C 3C00 	; Nothing
C3/8736:	00      	; End

Draw inventory for Item, Colosseum, or Sell menu
C3/8737:	20788B  	JSR $8B78      ; Define $E5, $E6
C3/873A:	A00A00  	LDY #$000A     ; Rows left: 10
C3/873D:	5A      	PHY            ; Save counter
C3/873E:	205287  	JSR $8752      ; Draw item row
C3/8741:	E6E5    	INC $E5        ; Item slot +1
C3/8743:	E6E5    	INC $E5        ; Item slot +1
C3/8745:	A5E6    	LDA $E6        ; BG1 write row
C3/8747:	1A      	INC A          ; Go 1 row down
C3/8748:	1A      	INC A          ; Go 1 row down
C3/8749:	291F    	AND #$1F       ; Stay in limits
C3/874B:	85E6    	STA $E6        ; Save changes
C3/874D:	7A      	PLY            ; Rows left
C3/874E:	88      	DEY            ; One less left
C3/874F:	D0EC    	BNE $873D      ; Loop till last
C3/8751:	60      	RTS

Draw a row of two items for Item, Colosseum, or Sell menu
C3/8752:	7B      	TDC            ; Clear A
C3/8753:	A5E5    	LDA $E5        ; Item slot A
C3/8755:	A8      	TAY            ; Index it
C3/8756:	20C687  	JSR $87C6      ; Choose palette
C3/8759:	B96919  	LDA $1969,Y    ; Item quantity
C3/875C:	206305  	JSR $0563      ; Turn into text
C3/875F:	A5E6    	LDA $E6        ; BG1 write row
C3/8761:	1A      	INC A          ; Go 1 row down
C3/8762:	A20D00  	LDX #$000D     ; X: 13
C3/8765:	202088  	JSR $8820      ; Compute map ptr
C3/8768:	203905  	JSR $0539      ; Draw quantity
C3/876B:	A5E6    	LDA $E6        ; BG1 write row
C3/876D:	A20300  	LDX #$0003     ; X: 3
C3/8770:	202088  	JSR $8820      ; Compute map ptr
C3/8773:	C220    	REP #$20       ; 16-bit A
C3/8775:	8A      	TXA            ; ...
C3/8776:	8F899E7E	STA $7E9E89    ; Set position
C3/877A:	E220    	SEP #$20       ; 8-bit A
C3/877C:	7B      	TDC            ; Clear A
C3/877D:	A5E5    	LDA $E5        ; Item slot
C3/877F:	A8      	TAY            ; Index it
C3/8780:	203A88  	JSR $883A      ; Load "<item>:"
C3/8783:	20B987  	JSR $87B9      ; Draw item A

Fork: Handle item B
C3/8786:	7B      	TDC            ; Clear A
C3/8787:	A5E5    	LDA $E5        ; Item slot A
C3/8789:	A8      	TAY            ; Index it
C3/878A:	C8      	INY            ; Now slot B
C3/878B:	20C687  	JSR $87C6      ; Choose palette
C3/878E:	B96919  	LDA $1969,Y    ; Item quantity
C3/8791:	206305  	JSR $0563      ; Turn into text
C3/8794:	A5E6    	LDA $E6        ; BG1 write row
C3/8796:	1A      	INC A          ; Go 1 row down
C3/8797:	A21B00  	LDX #$001B     ; X: 27
C3/879A:	202088  	JSR $8820      ; Compute map ptr
C3/879D:	203905  	JSR $0539      ; Draw quantity
C3/87A0:	A5E6    	LDA $E6        ; BG1 write row
C3/87A2:	A21100  	LDX #$0011     ; X: 17
C3/87A5:	202088  	JSR $8820      ; Compute map ptr
C3/87A8:	C220    	REP #$20       ; 16-bit A
C3/87AA:	8A      	TXA            ; ...
C3/87AB:	8F899E7E	STA $7E9E89    ; Set position
C3/87AF:	E220    	SEP #$20       ; 8-bit A
C3/87B1:	7B      	TDC            ; Clear A
C3/87B2:	A5E5    	LDA $E5        ; Item slot A
C3/87B4:	A8      	TAY            ; Index it
C3/87B5:	C8      	INY            ; Now slot B
C3/87B6:	203A88  	JSR $883A      ; Load "<item>:"

Draw memorized string with diacritics
C3/87B9:	A0899E  	LDY #$9E89     ; 7E/9E89
C3/87BC:	84E7    	STY $E7        ; Set src LBs
C3/87BE:	A97E    	LDA #$7E       ; Bank: 7E
C3/87C0:	85E9    	STA $E9        ; Set src HB
C3/87C2:	202C03  	JSR $032C      ; Draw string
C3/87C5:	60      	RTS

Choose item's color for Item, Colosseum, or Sell menu
C3/87C6:	AD0002  	LDA $0200      ; Root menu
C3/87C9:	C903    	CMP #$03       ; Shop menu?
C3/87CB:	F039    	BEQ $8806      ; Enable if so
C3/87CD:	C907    	CMP #$07       ; Colosseum?
C3/87CF:	F035    	BEQ $8806      ; Enable if so
C3/87D1:	8004    	BRA $87D7      ; Handle main menu

Fork: Get item slot (unused)
C3/87D3:	7B      	TDC            ; Clear A
C3/87D4:	A54B    	LDA $4B        ; Cursor slot
C3/87D6:	A8      	TAY            ; Index it

Fork: Main menu
C3/87D7:	B96918  	LDA $1869,Y    ; Item in slot
C3/87DA:	C9EF    	CMP #$EF       ; Megalixir?
C3/87DC:	F02D    	BEQ $880B      ; Disable if so
C3/87DE:	C9FF    	CMP #$FF       ; None?
C3/87E0:	F024    	BEQ $8806      ; Enable if so
C3/87E2:	C9F7    	CMP #$F7       ; Tent?
C3/87E4:	F02A    	BEQ $8810      ; Branch if so
C3/87E6:	C9F6    	CMP #$F6       ; Sleeping Bag?
C3/87E8:	F026    	BEQ $8810      ; Branch if so
C3/87EA:	C9FD    	CMP #$FD       ; Warp Stone?
C3/87EC:	F029    	BEQ $8817      ; Branch if so
C3/87EE:	20A28A  	JSR $8AA2      ; Compute index
C3/87F1:	AE3421  	LDX $2134      ; Load it
C3/87F4:	BF0050D8	LDA $D85000,X  ; Properties
C3/87F8:	2907    	AND #$07       ; Get class
C3/87FA:	C906    	CMP #$06       ; Consumable?
C3/87FC:	D00D    	BNE $880B      ; Disable if not
C3/87FE:	BF0050D8	LDA $D85000,X  ; Properties
C3/8802:	2940    	AND #$40       ; Usable in field?
C3/8804:	F005    	BEQ $880B      ; Disable if not
C3/8806:	A920    	LDA #$20       ; Palette 0
C3/8808:	8529    	STA $29        ; Color: User's
C3/880A:	60      	RTS

Fork: Set color to gray
C3/880B:	A928    	LDA #$28       ; Palette 2
C3/880D:	8529    	STA $29        ; Color: Gray
C3/880F:	60      	RTS

Fork: Tent or Sleeping Bag
C3/8810:	AD0102  	LDA $0201      ; Can save here?
C3/8813:	30F1    	BMI $8806      ; Enable if so
C3/8815:	80F4    	BRA $880B      ; Color: Gray

Fork: Warp Stone
C3/8817:	AD0102  	LDA $0201      ; Area permissions
C3/881A:	8902    	BIT #$02       ; Can warp here?
C3/881C:	D0E8    	BNE $8806      ; Enable if so
C3/881E:	80EB    	BRA $880B      ; Color: Gray

Compute position into BG1 tilemap A
C3/8820:	EB      	XBA            ; Switch to HB
C3/8821:	A500    	LDA $00        ; Clear it
C3/8823:	EB      	XBA            ; Y position
C3/8824:	C220    	REP #$20       ; 16-bit A
C3/8826:	0A      	ASL A          ; x2
C3/8827:	0A      	ASL A          ; x4
C3/8828:	0A      	ASL A          ; x8
C3/8829:	0A      	ASL A          ; x16
C3/882A:	0A      	ASL A          ; x32
C3/882B:	0A      	ASL A          ; x64
C3/882C:	85E7    	STA $E7        ; Memorize it
C3/882E:	8A      	TXA            ; X position
C3/882F:	0A      	ASL A          ; Double it
C3/8830:	18      	CLC            ; Prepare ADC
C3/8831:	65E7    	ADC $E7        ; Add Y x64
C3/8833:	694938  	ADC #$3849     ; Add base adr
C3/8836:	AA      	TAX            ; Put sum in X
C3/8837:	E220    	SEP #$20       ; 8-bit A
C3/8839:	60      	RTS

Load owned item's name, add colon (Item, Colosseum, Sell)
C3/883A:	A28B9E  	LDX #$9E8B     ; 7E/9E8B
C3/883D:	8E8121  	STX $2181      ; Set WRAM LBs
C3/8840:	AD1242  	LDA $4212      ; PPU status
C3/8843:	2940    	AND #$40       ; H-Blank?
C3/8845:	F0F9    	BEQ $8840      ; Loop if not
C3/8847:	7B      	TDC            ; Clear A
C3/8848:	B96918  	LDA $1869,Y    ; Item in slot
C3/884B:	C9FF    	CMP #$FF       ; None?
C3/884D:	F028    	BEQ $8877      ; Blank if so
C3/884F:	8D1B21  	STA $211B      ; Set matrix A LB
C3/8852:	9C1B21  	STZ $211B      ; Clear HB
C3/8855:	A909    	LDA #$09       ; Name data size
C3/8857:	8D1C21  	STA $211C      ; Set matrix B
C3/885A:	8D1C21  	STA $211C      ; ...
C3/885D:	AE3421  	LDX $2134      ; Index product
C3/8860:	A00900  	LDY #$0009     ; Letters: 9
C3/8863:	BF00F7E6	LDA $E6F700,X  ; Letter
C3/8867:	8D8021  	STA $2180      ; Add to string
C3/886A:	E8      	INX            ; Point to next
C3/886B:	88      	DEY            ; One less left
C3/886C:	D0F5    	BNE $8863      ; Loop till last
C3/886E:	A9CF    	LDA #$CF       ; Char: ":"
C3/8870:	8D8021  	STA $2180      ; Add to string
C3/8873:	9C8021  	STZ $2180      ; End string
C3/8876:	60      	RTS

Fork: Blank item name, colon, and quantity
C3/8877:	A00C00  	LDY #$000C     ; Spaces: 12
C3/887A:	A9FF    	LDA #$FF       ; Space char
C3/887C:	8D8021  	STA $2180      ; Add to string
C3/887F:	88      	DEY            ; One less left
C3/8880:	D0FA    	BNE $887C      ; Loop till last
C3/8882:	9C8021  	STZ $2180      ; End string
C3/8885:	60      	RTS

Adjust BG1 vertical shift amounts while list scrolls
C3/8886:	A21200  	LDX #$0012     ; Scanline: 88th
C3/8889:	E220    	SEP #$20       ; 8-bit A
C3/888B:	BF49987E	LDA $7E9849,X  ; Scanline amount
C3/888F:	C91E    	CMP #$1E       ; Last 30 lines?
C3/8891:	F04C    	BEQ $88DF      ; Exit if so
C3/8893:	E8      	INX            ; RAM index +1
C3/8894:	DA      	PHX            ; Memorize it
C3/8895:	7B      	TDC            ; Clear A
C3/8896:	A520    	LDA $20        ; Scroll timer
C3/8898:	C220    	REP #$20       ; 16-bit A
C3/889A:	A441    	LDY $41        ; Scrolling up?
C3/889C:	3002    	BMI $88A0      ; Branch if so
C3/889E:	8004    	BRA $88A4      ; Skip 2 lines
C3/88A0:	18      	CLC            ; Prepare ADC
C3/88A1:	690300  	ADC #$0003     ; Timer +3
C3/88A4:	0A      	ASL A          ; Timer x2
C3/88A5:	AA      	TAX            ; Index it
C3/88A6:	A8      	TAY            ; Memorize it
C3/88A7:	BFE088C3	LDA $C388E0,X  ; Shift mod; R1/3
C3/88AB:	FA      	PLX            ; RAM index
C3/88AC:	18      	CLC            ; Prepare ADC
C3/88AD:	7F49987E	ADC $7E9849,X  ; Add actual shift
C3/88B1:	9F49987E	STA $7E9849,X  ; Set actual shift
C3/88B5:	E8      	INX            ; RAM index +1
C3/88B6:	E8      	INX            ; RAM index +1
C3/88B7:	E8      	INX            ; RAM index +1
C3/88B8:	DA      	PHX            ; Memorize it
C3/88B9:	BB      	TYX            ; ROM index
C3/88BA:	BFEC88C3	LDA $C388EC,X  ; Shift mod; R2/3
C3/88BE:	FA      	PLX            ; RAM index
C3/88BF:	18      	CLC            ; Prepare ADC
C3/88C0:	7F49987E	ADC $7E9849,X  ; Add actual shift
C3/88C4:	9F49987E	STA $7E9849,X  ; Set actual shift
C3/88C8:	E8      	INX            ; RAM index +1
C3/88C9:	E8      	INX            ; RAM index +1
C3/88CA:	E8      	INX            ; RAM index +1
C3/88CB:	DA      	PHX            ; Memorize it
C3/88CC:	BB      	TYX            ; ROM index
C3/88CD:	BFF888C3	LDA $C388F8,X  ; Shift mod; R3/3
C3/88D1:	FA      	PLX            ; RAM index
C3/88D2:	18      	CLC            ; Prepare ADC
C3/88D3:	7F49987E	ADC $7E9849,X  ; Add actual shift
C3/88D7:	9F49987E	STA $7E9849,X  ; Set actual shift
C3/88DB:	E8      	INX            ; RAM index +1
C3/88DC:	E8      	INX            ; RAM index +1
C3/88DD:	80AA    	BRA $8889      ; Do next 12 lines
C3/88DF:	60      	RTS

Shift amount for 1st of every 3 rows of list scrolling down
C3/88E0:	0800    	; Frame 3: +8 px down
C3/88E2:	0400    	; Frame 2: +4 px down
C3/88E4:	0400    	; Frame 1: +4 px down

Shift amount for 1st of every 3 rows of list scrolling up
C3/88E6:	FCFF    	; Frame 3: +4 px up
C3/88E8:	FCFF    	; Frame 2: +4 px up
C3/88EA:	F8FF    	; Frame 1: +8 px up

Shift amount for 2nd of every 3 rows of list scrolling down
C3/88EC:	0400    	; Frame 3: +4 px down
C3/88EE:	0800    	; Frame 2: +8 px down
C3/88F0:	0400    	; Frame 1: +4 px down

Shift amount for 2nd of every 3 rows of list scrolling up
C3/88F2:	FCFF    	; Frame 3: +4 px up
C3/88F4:	F8FF    	; Frame 2: +8 px up
C3/88F6:	FCFF    	; Frame 1: +4 px up

Shift amount for every 3rd row of list scrolling down
C3/88F8:	0400    	; Frame 3: +4 px down
C3/88FA:	0400    	; Frame 2: +4 px down
C3/88FC:	0800    	; Frame 1: +8 px down

Shift amount for every 3rd row of list scrolling up
C3/88FE:	F8FF    	; Frame 3: +8 px up
C3/8900:	FCFF    	; Frame 2: +4 px up
C3/8902:	FCFF    	; Frame 1: +4 px up

Update scroll parameters for list
C3/8904:	AA      	TAX            ; Index mode
C3/8905:	7C0889  	JMP ($8908,X)  ; Handle mode

Jump table for the above
C3/8908:	1089    	; Scroll upward
C3/890A:	1D89    	; Scroll downward
C3/890C:	2889    	; Set timer
C3/890E:	3189    	; Check timer

Mode 0: Scroll upward
C3/8910:	A62D    	LDX $2D        ; ...
C3/8912:	C220    	REP #$20       ; 16-bit A
C3/8914:	A9FCFF  	LDA #$FFFC     ; 4 px up
C3/8917:	8541    	STA $41        ; Set V-Speed
C3/8919:	E220    	SEP #$20       ; 8-bit A
C3/891B:	800B    	BRA $8928      ; Init timer

Mode 1: Scroll downward
C3/891D:	A62D    	LDX $2D        ; ...
C3/891F:	C220    	REP #$20       ; 16-bit A
C3/8921:	A90400  	LDA #$0004     ; 4 px down
C3/8924:	8541    	STA $41        ; Set V-Speed
C3/8926:	E220    	SEP #$20       ; 8-bit A

Mode 2: Set timer
C3/8928:	A62D    	LDX $2D        ; Queue index
C3/892A:	A903    	LDA #$03       ; Mode: 3
C3/892C:	9D4936  	STA $3649,X    ; Set next mode
C3/892F:	8520    	STA $20        ; Set timer

Mode 3: Check timer
C3/8931:	A62D    	LDX $2D        ; ...
C3/8933:	A520    	LDA $20        ; Timer expired?
C3/8935:	F006    	BEQ $893D      ; Stop if so
C3/8937:	A920    	LDA #$20       ; Scroll BG1: Y
C3/8939:	0446    	TSB $46        ; Set menu flag
C3/893B:	38      	SEC            ; Set to requeue
C3/893C:	60      	RTS

Fork: Stop scrolling
C3/893D:	A400    	LDY $00        ; Clear Y
C3/893F:	8441    	STY $41        ; BG1 V-Speed: 0
C3/8941:	A920    	LDA #$20       ; Scroll BG1: N
C3/8943:	1446    	TRB $46        ; Set menu flag
C3/8945:	18      	CLC            ; Set to dequeue
C3/8946:	60      	RTS            ; ...
C3/8947:	60      	RTS

Handle D-Pad for scrollable list, change row when wrapping
C3/8948:	A520    	LDA $20        ; Scrolling now?
C3/894A:	D0FB    	BNE $8947      ; Exit if so

Fork: Handle up
C3/894C:	A50B    	LDA $0B        ; Semi-auto keys
C3/894E:	8908    	BIT #$08       ; Pushing up?
C3/8950:	F019    	BEQ $896B      ; Branch if not
C3/8952:	A54E    	LDA $4E        ; On first row?
C3/8954:	D00D    	BNE $8963      ; Go up if not
C3/8956:	A54A    	LDA $4A        ; At top of list?
C3/8958:	F0ED    	BEQ $8947      ; Exit if so
C3/895A:	C650    	DEC $50        ; List row -1
C3/895C:	20078A  	JSR $8A07      ; Queue scrolling
C3/895F:	200E0F  	JSR $0F0E      ; Sound: Cursor
C3/8962:	60      	RTS

Fork: Move cursor up
C3/8963:	C650    	DEC $50        ; List row -1
C3/8965:	C64E    	DEC $4E        ; Cursor row -1
C3/8967:	200E0F  	JSR $0F0E      ; Sound: Cursor
C3/896A:	60      	RTS

Fork: Handle down
C3/896B:	A50B    	LDA $0B        ; Semi-auto keys
C3/896D:	8904    	BIT #$04       ; Pushing down?
C3/896F:	F020    	BEQ $8991      ; Branch if not
C3/8971:	A554    	LDA $54        ; Bottom menu row
C3/8973:	3A      	DEC A          ; Adjust value
C3/8974:	C54E    	CMP $4E        ; Cursor's there?
C3/8976:	D012    	BNE $898A      ; Go down if not
C3/8978:	A54A    	LDA $4A        ; Scroll position
C3/897A:	C55C    	CMP $5C        ; At very bottom?
C3/897C:	F009    	BEQ $8987      ; Exit if so
C3/897E:	E650    	INC $50        ; List row +1
C3/8980:	201F8A  	JSR $8A1F      ; Queue scrolling
C3/8983:	200E0F  	JSR $0F0E      ; Sound: Cursor
C3/8986:	60      	RTS

Fork: Exit
C3/8987:	4C068A  	JMP $8A06      ; RTS...

Fork: Move cursor down
C3/898A:	E650    	INC $50        ; List row +1
C3/898C:	E64E    	INC $4E        ; Cursor row +1
C3/898E:	200E0F  	JSR $0F0E      ; Sound: Cursor

Fork: Handle left
C3/8991:	A50B    	LDA $0B        ; Semi-auto keys
C3/8993:	8902    	BIT #$02       ; Pushing left?
C3/8995:	F033    	BEQ $89CA      ; Branch if not
C3/8997:	A54D    	LDA $4D        ; On first column?
C3/8999:	D027    	BNE $89C2      ; Branch if not
C3/899B:	A54E    	LDA $4E        ; On top row?
C3/899D:	F00F    	BEQ $89AE      ; Branch if so
C3/899F:	C64E    	DEC $4E        ; Cursor row -1
C3/89A1:	C650    	DEC $50        ; List row -1
C3/89A3:	A553    	LDA $53        ; Furthest column
C3/89A5:	3A      	DEC A          ; Adjust value
C3/89A6:	854D    	STA $4D        ; Set as cursor's
C3/89A8:	854F    	STA $4F        ; Set as list's
C3/89AA:	200E0F  	JSR $0F0E      ; Sound: Cursor
C3/89AD:	60      	RTS

Fork: Wrap to upper, offscreen row
C3/89AE:	A54A    	LDA $4A        ; At top of list?
C3/89B0:	F095    	BEQ $8947      ; Exit if so
C3/89B2:	20078A  	JSR $8A07      ; Queue scrolling
C3/89B5:	A553    	LDA $53        ; Furthest column
C3/89B7:	3A      	DEC A          ; Adjust value
C3/89B8:	854D    	STA $4D        ; Set as cursor's
C3/89BA:	854F    	STA $4F        ; Set as list's
C3/89BC:	C650    	DEC $50        ; List row -1
C3/89BE:	200E0F  	JSR $0F0E      ; Sound: Cursor
C3/89C1:	60      	RTS

Fork: Move cursor left
C3/89C2:	C64D    	DEC $4D        ; Cursor column -1
C3/89C4:	C64F    	DEC $4F        ; List column -1
C3/89C6:	200E0F  	JSR $0F0E      ; Sound: Cursor
C3/89C9:	60      	RTS

Fork: Handle right
C3/89CA:	A50B    	LDA $0B        ; Semi-auto keys
C3/89CC:	8901    	BIT #$01       ; Pushing right?
C3/89CE:	F036    	BEQ $8A06      ; Exit if not
C3/89D0:	A553    	LDA $53        ; Furthest column
C3/89D2:	3A      	DEC A          ; Adjust value
C3/89D3:	C54D    	CMP $4D        ; Cursor's there?
C3/89D5:	D028    	BNE $89FF      ; Go right if not
C3/89D7:	A554    	LDA $54        ; Bottom menu row
C3/89D9:	3A      	DEC A          ; Adjust value
C3/89DA:	C54E    	CMP $4E        ; Cursor's there?
C3/89DC:	F00D    	BEQ $89EB      ; Branch if so
C3/89DE:	7B      	TDC            ; Clear A
C3/89DF:	854D    	STA $4D        ; Cursor column: 1
C3/89E1:	854F    	STA $4F        ; List column: 1
C3/89E3:	E64E    	INC $4E        ; Cursor row +1
C3/89E5:	E650    	INC $50        ; List row +1
C3/89E7:	200E0F  	JSR $0F0E      ; Sound: Cursor
C3/89EA:	60      	RTS

Fork: Wrap to lower, offscreen row
C3/89EB:	A54A    	LDA $4A        ; Scroll position
C3/89ED:	C55C    	CMP $5C        ; At very bottom?
C3/89EF:	F015    	BEQ $8A06      ; Exit if so
C3/89F1:	201F8A  	JSR $8A1F      ; Queue scrolling
C3/89F4:	7B      	TDC            ; Clear A
C3/89F5:	854D    	STA $4D        ; Cursor column: 1
C3/89F7:	854F    	STA $4F        ; List column: 1
C3/89F9:	E650    	INC $50        ; List row +1
C3/89FB:	200E0F  	JSR $0F0E      ; Sound: Cursor
C3/89FE:	60      	RTS

Fork: Move cursor right
C3/89FF:	E64D    	INC $4D        ; Cursor column +1
C3/8A01:	E64F    	INC $4F        ; List column +1
C3/8A03:	200E0F  	JSR $0F0E      ; Sound: Cursor
C3/8A06:	60      	RTS

Set to scroll list upward, draw row to scroll into view
C3/8A07:	C64A    	DEC $4A        ; Scroll pos -1
C3/8A09:	C649    	DEC $49        ; Top BG1 row -1
C3/8A0B:	20788B  	JSR $8B78      ; Define $E5, $E6
C3/8A0E:	205E8A  	JSR $8A5E      ; Draw new row
C3/8A11:	A900    	LDA #$00       ; Min slot: 0
C3/8A13:	A00489  	LDY #$8904     ; C3/8904
C3/8A16:	20DE11  	JSR $11DE      ; Queue scroll fn
C3/8A19:	7B      	TDC            ; Anim mode: Up
C3/8A1A:	9F49367E	STA $7E3649,X  ; Set scroll mode
C3/8A1E:	60      	RTS

Set to scroll list downward, draw row to scroll into view
C3/8A1F:	AD1242  	LDA $4212      ; PPU status
C3/8A22:	2940    	AND #$40       ; H-Blank?
C3/8A24:	F0F9    	BEQ $8A1F      ; Loop if not
C3/8A26:	A55A    	LDA $5A        ; Rows per page
C3/8A28:	18      	CLC            ; Prepare ADC
C3/8A29:	654A    	ADC $4A        ; Add scroll pos
C3/8A2B:	8D1B21  	STA $211B      ; Set matrix A LB
C3/8A2E:	9C1B21  	STZ $211B      ; Clear HB
C3/8A31:	A55B    	LDA $5B        ; Number of columns
C3/8A33:	8D1C21  	STA $211C      ; Set matrix B
C3/8A36:	8D1C21  	STA $211C      ; ...
C3/8A39:	AD3421  	LDA $2134      ; Product LB
C3/8A3C:	85E5    	STA $E5        ; Set SW list slot
C3/8A3E:	A549    	LDA $49        ; Top BG1 write row
C3/8A40:	18      	CLC            ; Prepare ADC
C3/8A41:	655A    	ADC $5A        ; Get bottom row +1
C3/8A43:	0A      	ASL A          ; x2 for blank rows
C3/8A44:	291F    	AND #$1F       ; Stay in limits
C3/8A46:	85E6    	STA $E6        ; Set BG1 write row
C3/8A48:	E64A    	INC $4A        ; Scroll pos +1
C3/8A4A:	E649    	INC $49        ; Top BG1 row +1
C3/8A4C:	205E8A  	JSR $8A5E      ; Draw new row
C3/8A4F:	A900    	LDA #$00       ; Min slot: 0
C3/8A51:	A00489  	LDY #$8904     ; C3/8904
C3/8A54:	20DE11  	JSR $11DE      ; Queue scroll fn
C3/8A57:	A901    	LDA #$01       ; Anim mode: Down
C3/8A59:	9F49367E	STA $7E3649,X  ; Set scroll mode
C3/8A5D:	60      	RTS

Draw list elements to scroll into view
C3/8A5E:	7B      	TDC            ; Clear A
C3/8A5F:	A52A    	LDA $2A        ; List type
C3/8A61:	0A      	ASL A          ; Double it
C3/8A62:	AA      	TAX            ; Index it
C3/8A63:	7C668A  	JMP ($8A66,X)  ; Draw row

Jump table for the above
C3/8A66:	5287    	; Inventory
C3/8A68:	7056    	; Magic
C3/8A6A:	2559    	; Lore
C3/8A6C:	495A    	; Rage
C3/8A6E:	3D5B    	; Esper
C3/8A70:	D1A4    	; Gear

Load common item's description and draw item count in Item menu
C3/8A72:	20898A  	JSR $8A89      ; Set desc ptrs
C3/8A75:	7B      	TDC            ; Clear A
C3/8A76:	A54B    	LDA $4B        ; Cursor slot
C3/8A78:	A8      	TAY            ; Index it
C3/8A79:	B96918  	LDA $1869,Y    ; Item in slot
C3/8A7C:	20955D  	JSR $5D95      ; Load description
C3/8A7F:	20D78A  	JSR $8AD7      ; Count items
C3/8A82:	A920    	LDA #$20       ; Palette 0
C3/8A84:	8529    	STA $29        ; Color: User's
C3/8A86:	4CFB8A  	JMP $8AFB      ; Draw item count

Prepare item description loading
C3/8A89:	A2006E  	LDX #$6E00     ; D8/6E00
C3/8A8C:	86E7    	STX $E7        ; Set ptr loc LBs
C3/8A8E:	A20064  	LDX #$6400     ; ED/6400
C3/8A91:	86EB    	STX $EB        ; Set text loc LBs
C3/8A93:	A9D8    	LDA #$D8       ; Bank: D8
C3/8A95:	85E9    	STA $E9        ; Set ptr loc HB
C3/8A97:	A9ED    	LDA #$ED       ; Bank: ED
C3/8A99:	85ED    	STA $ED        ; Set text loc HB
C3/8A9B:	A2C99E  	LDX #$9EC9     ; 7E/9EC9
C3/8A9E:	8E8121  	STX $2181      ; Set WRAM LBs
C3/8AA1:	60      	RTS

Compute item data index
C3/8AA2:	48      	PHA            ; Save item
C3/8AA3:	AD1242  	LDA $4212      ; PPU status
C3/8AA6:	2940    	AND #$40       ; H-Blank?
C3/8AA8:	F0F9    	BEQ $8AA3      ; Loop if not
C3/8AAA:	68      	PLA            ; Item
C3/8AAB:	8D1B21  	STA $211B      ; Set matrix A LB
C3/8AAE:	9C1B21  	STZ $211B      ; Clear HB
C3/8AB1:	A91E    	LDA #$1E       ; Item data size
C3/8AB3:	8D1C21  	STA $211C      ; Set matrix B
C3/8AB6:	8D1C21  	STA $211C      ; ...
C3/8AB9:	60      	RTS

Load rare item's description and draw item count
C3/8ABA:	A260FB  	LDX #$FB60     ; CE/FB60
C3/8ABD:	86E7    	STX $E7        ; Set ptr loc LBs
C3/8ABF:	A290FC  	LDX #$FC90     ; CE/FC90
C3/8AC2:	86EB    	STX $EB        ; Set text loc LBs
C3/8AC4:	A9CE    	LDA #$CE       ; Bank: CE
C3/8AC6:	85E9    	STA $E9        ; Set ptr loc HB
C3/8AC8:	85ED    	STA $ED        ; Set text loc HB
C3/8ACA:	20875D  	JSR $5D87      ; Load description
C3/8ACD:	20EC8A  	JSR $8AEC      ; Count items
C3/8AD0:	A920    	LDA #$20       ; Palette 0
C3/8AD2:	8529    	STA $29        ; Color: User's
C3/8AD4:	4CFB8A  	JMP $8AFB      ; Draw item count

Count number of common items
C3/8AD7:	7B      	TDC            ; Clear A
C3/8AD8:	AA      	TAX            ; Item slot: 1
C3/8AD9:	A8      	TAY            ; Item count: 0
C3/8ADA:	BD6918  	LDA $1869,X    ; Item in slot
C3/8ADD:	C9FF    	CMP #$FF       ; None?
C3/8ADF:	F001    	BEQ $8AE2      ; Exclude if so
C3/8AE1:	C8      	INY            ; Item count +1
C3/8AE2:	E8      	INX            ; Item slot +1
C3/8AE3:	E00001  	CPX #$0100     ; Done all 256?
C3/8AE6:	D0F2    	BNE $8ADA      ; Loop if not
C3/8AE8:	98      	TYA            ; Get counter
C3/8AE9:	8564    	STA $64        ; Set item count
C3/8AEB:	60      	RTS

Count number of rare items
C3/8AEC:	7B      	TDC            ; Clear A
C3/8AED:	AA      	TAX            ; Item slot: 1
C3/8AEE:	BF899D7E	LDA $7E9D89,X  ; Empty slot?
C3/8AF2:	3003    	BMI $8AF7      ; Branch if so
C3/8AF4:	E8      	INX            ; Item slot +1
C3/8AF5:	80F7    	BRA $8AEE      ; Check next slot
C3/8AF7:	8A      	TXA            ; Current slot
C3/8AF8:	8564    	STA $64        ; Set item count
C3/8AFA:	60      	RTS

Draw number of common or rare items
C3/8AFB:	A564    	LDA $64        ; Item count
C3/8AFD:	206305  	JSR $0563      ; Turn into text
C3/8B00:	A2BF7A  	LDX #$7ABF     ; Text position
C3/8B03:	4C4305  	JMP $0543      ; Draw 3 digits

Blank item count in corner of Item menu
C3/8B06:	A0BF95  	LDY #$95BF     ; Text pointer
C3/8B09:	4CF902  	JMP $02F9      ; Draw 3 spaces

Build and draw rare item list
C3/8B0C:	20A971  	JSR $71A9      ; Clear BG1 map A
C3/8B0F:	20158B  	JSR $8B15      ; Build item list
C3/8B12:	4C5F8B  	JMP $8B5F      ; Draw item list

Build rare item list
C3/8B15:	A2899D  	LDX #$9D89     ; 7E/9D89
C3/8B18:	8E8121  	STX $2181      ; Set WRAM LBs
C3/8B1B:	A02100  	LDY #$0021     ; Items: 33
C3/8B1E:	A9FF    	LDA #$FF       ; Empty item
C3/8B20:	8D8021  	STA $2180      ; Add to list
C3/8B23:	88      	DEY            ; One less left
C3/8B24:	D0FA    	BNE $8B20      ; Loop till last
C3/8B26:	A2899D  	LDX #$9D89     ; ...
C3/8B29:	8E8121  	STX $2181      ; Reset WRAM LBs
C3/8B2C:	AEBA1E  	LDX $1EBA      ; Item packs A+B
C3/8B2F:	86EF    	STX $EF        ; Memorize them
C3/8B31:	ADBC1E  	LDA $1EBC      ; Item pack C
C3/8B34:	85F1    	STA $F1        ; Memorize it
C3/8B36:	ADBD1E  	LDA $1EBD      ; Item pack D
C3/8B39:	293F    	AND #$3F       ; Clear flags
C3/8B3B:	85F2    	STA $F2        ; Memorize it
C3/8B3D:	7B      	TDC            ; Item: Cider
C3/8B3E:	85E0    	STA $E0        ; Set as current
C3/8B40:	AA      	TAX            ; Pack index: 0
C3/8B41:	A904    	LDA #$04       ; Item packs: 4
C3/8B43:	85E1    	STA $E1        ; Set counter
C3/8B45:	A00800  	LDY #$0008     ; Items left: 8
C3/8B48:	B5EF    	LDA $EF,X      ; 8 owned items
C3/8B4A:	6A      	ROR A          ; Got current?
C3/8B4B:	48      	PHA            ; Save item pack
C3/8B4C:	9005    	BCC $8B53      ; Skip if not
C3/8B4E:	A5E0    	LDA $E0        ; Item number
C3/8B50:	8D8021  	STA $2180      ; Add to list
C3/8B53:	E6E0    	INC $E0        ; Item number +1
C3/8B55:	68      	PLA            ; 8 owned items
C3/8B56:	88      	DEY            ; One less item
C3/8B57:	D0F1    	BNE $8B4A      ; Loop till last
C3/8B59:	E8      	INX            ; Pack index +1
C3/8B5A:	C6E1    	DEC $E1        ; One less pack
C3/8B5C:	D0E7    	BNE $8B45      ; Loop till last
C3/8B5E:	60      	RTS

Draw rare item list
C3/8B5F:	20788B  	JSR $8B78      ; Define $E6
C3/8B62:	64E5    	STZ $E5        ; Item slot: 1
C3/8B64:	A00A00  	LDY #$000A     ; Rows left: 10
C3/8B67:	5A      	PHY            ; Save counter
C3/8B68:	209C8B  	JSR $8B9C      ; Draw 2 items
C3/8B6B:	A5E6    	LDA $E6        ; BG1 write row
C3/8B6D:	1A      	INC A          ; Go 1 row down
C3/8B6E:	1A      	INC A          ; Go 1 row down
C3/8B6F:	291F    	AND #$1F       ; Stay in limits
C3/8B71:	85E6    	STA $E6        ; Save changes
C3/8B73:	7A      	PLY            ; Rows left
C3/8B74:	88      	DEY            ; One less left
C3/8B75:	D0F0    	BNE $8B67      ; Loop till last
C3/8B77:	60      	RTS

Define BG1 row for drawing list, plus first onscreen list slot
C3/8B78:	A549    	LDA $49        ; Top BG1 write row
C3/8B7A:	0A      	ASL A          ; x2 for blank rows
C3/8B7B:	291F    	AND #$1F       ; Stay in limits
C3/8B7D:	85E6    	STA $E6        ; Set BG1 write row
C3/8B7F:	AD1242  	LDA $4212      ; PPU status
C3/8B82:	2940    	AND #$40       ; H-Blank?
C3/8B84:	F0F9    	BEQ $8B7F      ; Loop if not
C3/8B86:	A54A    	LDA $4A        ; Scroll position
C3/8B88:	8D1B21  	STA $211B      ; Set matrix A LB
C3/8B8B:	9C1B21  	STZ $211B      ; Clear HB
C3/8B8E:	A55B    	LDA $5B        ; Number of columns
C3/8B90:	8D1C21  	STA $211C      ; Set matrix B
C3/8B93:	8D1C21  	STA $211C      ; ...
C3/8B96:	AD3421  	LDA $2134      ; Product LB
C3/8B99:	85E5    	STA $E5        ; Set list slot
C3/8B9B:	60      	RTS

Draw a row of three rare items
C3/8B9C:	A920    	LDA #$20       ; Palette 0
C3/8B9E:	8529    	STA $29        ; Color: User's
C3/8BA0:	20C28B  	JSR $8BC2      ; Define source
C3/8BA3:	A20300  	LDX #$0003     ; X: 3
C3/8BA6:	20D18B  	JSR $8BD1      ; Draw item A
C3/8BA9:	E6E5    	INC $E5        ; Item slot +1
C3/8BAB:	20C28B  	JSR $8BC2      ; Define source
C3/8BAE:	A20C00  	LDX #$000C     ; X: 12
C3/8BB1:	20D18B  	JSR $8BD1      ; Draw item B
C3/8BB4:	E6E5    	INC $E5        ; Item slot +1
C3/8BB6:	20C28B  	JSR $8BC2      ; Define source
C3/8BB9:	A21500  	LDX #$0015     ; X: 21
C3/8BBC:	20D18B  	JSR $8BD1      ; Draw item C
C3/8BBF:	E6E5    	INC $E5        ; Item slot +1
C3/8BC1:	60      	RTS

Set source for loading rare item name
C3/8BC2:	A00800  	LDY #$0008     ; Letters: 8
C3/8BC5:	84EB    	STY $EB        ; Set src size
C3/8BC7:	A0A0FB  	LDY #$FBA0     ; CE/FBA0
C3/8BCA:	84EF    	STY $EF        ; Set src LBs
C3/8BCC:	A9CE    	LDA #$CE       ; Bank: CE
C3/8BCE:	85F1    	STA $F1        ; Set src HB
C3/8BD0:	60      	RTS

Draw rare item name
C3/8BD1:	A5E6    	LDA $E6        ; BG1 write row
C3/8BD3:	202088  	JSR $8820      ; Compute map ptr
C3/8BD6:	C220    	REP #$20       ; 16-bit A
C3/8BD8:	8A      	TXA            ; ...
C3/8BD9:	8F899E7E	STA $7E9E89    ; Set position
C3/8BDD:	E220    	SEP #$20       ; 8-bit A
C3/8BDF:	7B      	TDC            ; Clear A
C3/8BE0:	A5E5    	LDA $E5        ; Item slot
C3/8BE2:	AA      	TAX            ; Index it
C3/8BE3:	BF899D7E	LDA $7E9D89,X  ; Item in slot
C3/8BE7:	C9FF    	CMP #$FF       ; None?
C3/8BE9:	F006    	BEQ $8BF1      ; Exit if so
C3/8BEB:	20F28B  	JSR $8BF2      ; Load name
C3/8BEE:	4CB987  	JMP $87B9      ; Draw name
C3/8BF1:	60      	RTS

Load fixed-size string from table
C3/8BF2:	48      	PHA            ; Save name ID
C3/8BF3:	A28B9E  	LDX #$9E8B     ; 7E/9E8B
C3/8BF6:	8E8121  	STX $2181      ; Set WRAM LBs
C3/8BF9:	AD1242  	LDA $4212      ; PPU status
C3/8BFC:	2940    	AND #$40       ; H-Blank?
C3/8BFE:	F0F9    	BEQ $8BF9      ; Loop if not
C3/8C00:	68      	PLA            ; Name number
C3/8C01:	8D1B21  	STA $211B      ; Set matrix A LB
C3/8C04:	9C1B21  	STZ $211B      ; Clear HB
C3/8C07:	7B      	TDC            ; Clear A
C3/8C08:	A5EB    	LDA $EB        ; String size
C3/8C0A:	8D1C21  	STA $211C      ; Set matrix B
C3/8C0D:	8D1C21  	STA $211C      ; ...
C3/8C10:	AC3421  	LDY $2134      ; Index product
C3/8C13:	A6EB    	LDX $EB        ; String size
C3/8C15:	B7EF    	LDA [$EF],Y    ; Letter
C3/8C17:	8D8021  	STA $2180      ; Add to string
C3/8C1A:	C8      	INY            ; Point to next
C3/8C1B:	CA      	DEX            ; One less left
C3/8C1C:	D0F7    	BNE $8C15      ; Loop till last
C3/8C1E:	9C8021  	STZ $2180      ; End string
C3/8C21:	60      	RTS

Handle double-clicked item
C3/8C22:	7B      	TDC            ; Clear A
C3/8C23:	A54B    	LDA $4B        ; Cursor slot
C3/8C25:	8528    	STA $28        ; Set blinker's
C3/8C27:	A8      	TAY            ; Index it
C3/8C28:	B96918  	LDA $1869,Y    ; Selected item
C3/8C2B:	C9FF    	CMP #$FF       ; Empty slot?
C3/8C2D:	F06C    	BEQ $8C9B      ; Fail if so
C3/8C2F:	C9EF    	CMP #$EF       ; Megalixir?
C3/8C31:	F068    	BEQ $8C9B      ; Fail if so...
C3/8C33:	20A28A  	JSR $8AA2      ; Compute index
C3/8C36:	AE3421  	LDX $2134      ; Load it
C3/8C39:	BF0050D8	LDA $D85000,X  ; Item properties
C3/8C3D:	2907    	AND #$07       ; Get item class
C3/8C3F:	C906    	CMP #$06       ; Consumable?
C3/8C41:	D05D    	BNE $8CA0      ; Branch if not
C3/8C43:	BF0050D8	LDA $D85000,X  ; Item properties
C3/8C47:	2940    	AND #$40       ; Usable in field?
C3/8C49:	F050    	BEQ $8C9B      ; Fail if not
C3/8C4B:	7B      	TDC            ; ...
C3/8C4C:	A528    	LDA $28        ; Selected slot
C3/8C4E:	A8      	TAY            ; Index it
C3/8C4F:	B96918  	LDA $1869,Y    ; Item in slot
C3/8C52:	C9F7    	CMP #$F7       ; Tent?
C3/8C54:	F02D    	BEQ $8C83      ; Branch if so
C3/8C56:	C9F6    	CMP #$F6       ; Sleeping Bag?
C3/8C58:	F013    	BEQ $8C6D      ; Branch if so
C3/8C5A:	C9FD    	CMP #$FD       ; Warp Stone?
C3/8C5C:	F018    	BEQ $8C76      ; Branch if so
C3/8C5E:	A44F    	LDY $4F        ; Cursor position
C3/8C60:	848E    	STY $8E        ; Set return loc
C3/8C62:	A54A    	LDA $4A        ; Scroll position
C3/8C64:	8590    	STA $90        ; Set return loc
C3/8C66:	A96F    	LDA #$6F       ; C3/920E
C3/8C68:	8527    	STA $27        ; Queue usage menu
C3/8C6A:	6426    	STZ $26        ; Next: Fade-out
C3/8C6C:	60      	RTS

Fork: Sleeping Bag
C3/8C6D:	85E6    	STA $E6        ; Memorize item
C3/8C6F:	AD0102  	LDA $0201      ; Can save here?
C3/8C72:	1027    	BPL $8C9B      ; Fail if not
C3/8C74:	80E8    	BRA $8C5E      ; Queue usage menu

Fork: Warp Stone
C3/8C76:	85E6    	STA $E6        ; Memorize item
C3/8C78:	AD0102  	LDA $0201      ; Area permissions
C3/8C7B:	8902    	BIT #$02       ; Can warp here?
C3/8C7D:	F01C    	BEQ $8C9B      ; Fail if not
C3/8C7F:	A903    	LDA #$03       ; Event: Warp
C3/8C81:	8009    	BRA $8C8C      ; Destroy item

Fork: Tent
C3/8C83:	85E6    	STA $E6        ; Memorize item
C3/8C85:	AD0102  	LDA $0201      ; Can save here?
C3/8C88:	1011    	BPL $8C9B      ; Fail if not
C3/8C8A:	A902    	LDA #$02       ; Event: Tent
C3/8C8C:	8D0502  	STA $0205      ; Set aftereffect
C3/8C8F:	A5E6    	LDA $E6        ; Item
C3/8C91:	20A5A5  	JSR $A5A5      ; Destroy it
C3/8C94:	A9FF    	LDA #$FF       ; Null value
C3/8C96:	8527    	STA $27        ; Queue menu exit
C3/8C98:	6426    	STZ $26        ; Next: Fade-out
C3/8C9A:	60      	RTS

Fork: Unusable consumable
C3/8C9B:	A908    	LDA #$08       ; C3/1F5D
C3/8C9D:	8526    	STA $26        ; Next: Choice 1
C3/8C9F:	60      	RTS

Fork: Compile gear's compatible actors
C3/8CA0:	A0899D  	LDY #$9D89     ; 7E/9D89
C3/8CA3:	8C8121  	STY $2181      ; Set WRAM LBs
C3/8CA6:	C900    	CMP #$00       ; Tool class?
C3/8CA8:	F0F1    	BEQ $8C9B      ; Abort if so
C3/8CAA:	64E0    	STZ $E0        ; Current: Terra
C3/8CAC:	C220    	REP #$20       ; 16-bit A
C3/8CAE:	BF0150D8	LDA $D85001,X  ; Compatibility
C3/8CB2:	A600    	LDX $00        ; Actors done: 0
C3/8CB4:	4A      	LSR A          ; Actor can use?
C3/8CB5:	900B    	BCC $8CC2      ; Skip if not
C3/8CB7:	48      	PHA            ; Save compat.
C3/8CB8:	E220    	SEP #$20       ; 8-bit A
C3/8CBA:	A5E0    	LDA $E0        ; Current actor
C3/8CBC:	8D8021  	STA $2180      ; Add to list
C3/8CBF:	C220    	REP #$20       ; 16-bit A
C3/8CC1:	68      	PLA            ; Compatibility
C3/8CC2:	E220    	SEP #$20       ; 8-bit A
C3/8CC4:	E6E0    	INC $E0        ; Actor number +1
C3/8CC6:	C220    	REP #$20       ; 16-bit A
C3/8CC8:	E8      	INX            ; Actors done +1
C3/8CC9:	E00E00  	CPX #$000E     ; Done all 14?
C3/8CCC:	D0E6    	BNE $8CB4      ; Loop if not
C3/8CCE:	E220    	SEP #$20       ; 8-bit A
C3/8CD0:	A9FF    	LDA #$FF       ; Terminator
C3/8CD2:	8D8021  	STA $2180      ; End list

Fork: Initialize gear data menu
C3/8CD5:	C220    	REP #$20       ; 16-bit A
C3/8CD7:	A9E000  	LDA #$00E0     ; BG1 H-Shift: 224
C3/8CDA:	8F109A7E	STA $7E9A10    ; Hide item list
C3/8CDE:	A94F7D  	LDA #$7D4F     ; Tilemap ptr
C3/8CE1:	8F899E7E	STA $7E9E89    ; Set item pos
C3/8CE5:	E220    	SEP #$20       ; 8-bit A
C3/8CE7:	A904    	LDA #$04       ; Cursor: Blank
C3/8CE9:	1445    	TRB $45        ; Set menu flag
C3/8CEB:	20178D  	JSR $8D17      ; Stop desc/bar
C3/8CEE:	20208D  	JSR $8D20      ; Create arrow
C3/8CF1:	7B      	TDC            ; ...
C3/8CF2:	A54B    	LDA $4B        ; Item's slot
C3/8CF4:	A8      	TAY            ; Index it
C3/8CF5:	203A88  	JSR $883A      ; Load "<item>:"
C3/8CF8:	20388D  	JSR $8D38      ; Add "can be..."
C3/8CFB:	A92C    	LDA #$2C       ; Palette 3
C3/8CFD:	8529    	STA $29        ; Color: Blue
C3/8CFF:	20B987  	JSR $87B9      ; Draw string
C3/8D02:	A920    	LDA #$20       ; Palette 0
C3/8D04:	8529    	STA $29        ; Color: User's
C3/8D06:	20608D  	JSR $8D60      ; Draw actor list
C3/8D09:	20FB8D  	JSR $8DFB      ; Draw other info
C3/8D0C:	20900F  	JSR $0F90      ; Queue text upload
C3/8D0F:	20F40F  	JSR $0FF4      ; Dequeue desc DMA
C3/8D12:	A964    	LDA #$64       ; C3/910D
C3/8D14:	8526    	STA $26        ; Next: Sustain menu
C3/8D16:	60      	RTS

Disable scrollbar and freeze description
C3/8D17:	A9C0    	LDA #$C0       ; Scrollbar: Off
C3/8D19:	1446    	TRB $46        ; Set anim index
C3/8D1B:	A910    	LDA #$10       ; Reset/Stop desc
C3/8D1D:	0445    	TSB $45        ; Set menu flag
C3/8D1F:	60      	RTS

Create arrow for gear data menu
C3/8D20:	A901    	LDA #$01       ; Status: On
C3/8D22:	8599    	STA $99        ; Enable arrow
C3/8D24:	A901    	LDA #$01       ; Min slot: 8
C3/8D26:	A0AD81  	LDY #$81AD     ; C3/81AD
C3/8D29:	20DE11  	JSR $11DE      ; Queue OAM fn
C3/8D2C:	A980    	LDA #$80       ; Y: 128
C3/8D2E:	9F4A347E	STA $7E344A,X  ; Set sprite's
C3/8D32:	7B      	TDC            ; ...
C3/8D33:	9F4B347E	STA $7E344B,X  ; No use...
C3/8D37:	60      	RTS

Add " can be used by:" after item name
C3/8D38:	A20100  	LDX #$0001     ; Skip item icon
C3/8D3B:	BF8B9E7E	LDA $7E9E8B,X  ; Item letter
C3/8D3F:	C9FF    	CMP #$FF       ; Terminator?
C3/8D41:	D015    	BNE $8D58      ; Branch if not
C3/8D43:	A400    	LDY $00        ; ROM index: 0
C3/8D45:	DA      	PHX            ; Save RAM index
C3/8D46:	BB      	TYX            ; ROM index
C3/8D47:	BFBD94C3	LDA $C394BD,X  ; Message letter
C3/8D4B:	FA      	PLX            ; RAM index
C3/8D4C:	9F8B9E7E	STA $7E9E8B,X  ; Add to string
C3/8D50:	E8      	INX            ; RAM index +1
C3/8D51:	C8      	INY            ; ROM index +1
C3/8D52:	C00F00  	CPY #$000F     ; Done 15 chars?
C3/8D55:	D0EE    	BNE $8D45      ; Loop if not
C3/8D57:	60      	RTS

Fork: Check next letter from item name
C3/8D58:	E8      	INX            ; RAM index +1
C3/8D59:	E00900  	CPX #$0009     ; Done 8 chars?
C3/8D5C:	D0DD    	BNE $8D3B      ; Loop if not
C3/8D5E:	80E3    	BRA $8D43      ; Load "can..."

Filter and draw gear's list of compatible actors
C3/8D60:	A2099E  	LDX #$9E09     ; 7E/9E09
C3/8D63:	8E8121  	STX $2181      ; Set WRAM LBs
C3/8D66:	A600    	LDX $00        ; List slot: 1
C3/8D68:	BF899D7E	LDA $7E9D89,X  ; Eligible actor
C3/8D6C:	3040    	BMI $8DAE      ; Branch if end
C3/8D6E:	85E5    	STA $E5        ; Memorize actor
C3/8D70:	A400    	LDY $00        ; Actor slot: 1
C3/8D72:	84E7    	STY $E7        ; Save actor slot

Fork: Exclude if never recruited or dead Shadow
C3/8D74:	86F3    	STX $F3        ; Save list slot
C3/8D76:	A5E5    	LDA $E5        ; Eligible actor
C3/8D78:	D90016  	CMP $1600,Y    ; In actor slot?
C3/8D7B:	D018    	BNE $8D95      ; Try next if not
C3/8D7D:	C220    	REP #$20       ; 16-bit A
C3/8D7F:	A5E7    	LDA $E7        ; Actor slot
C3/8D81:	0A      	ASL A          ; Double it
C3/8D82:	AA      	TAX            ; Index it
C3/8D83:	ADDC1E  	LDA $1EDC      ; Showable actors
C3/8D86:	3F56A4C3	AND $C3A456,X  ; Has our actor?
C3/8D8A:	E220    	SEP #$20       ; 8-bit A
C3/8D8C:	F018    	BEQ $8DA6      ; Skip if not
C3/8D8E:	A5E7    	LDA $E7        ; Actor slot
C3/8D90:	8D8021  	STA $2180      ; Add to new list
C3/8D93:	8011    	BRA $8DA6      ; Do next actor

Fork: Try next actor in SRAM block
C3/8D95:	C221    	REP #$21       ; 16-bit A; C-
C3/8D97:	98      	TYA            ; Actor's address
C3/8D98:	692500  	ADC #$0025     ; Point to next
C3/8D9B:	A8      	TAY            ; Reindex it
C3/8D9C:	E220    	SEP #$20       ; 8-bit A
C3/8D9E:	E6E7    	INC $E7        ; Actor slot +1
C3/8DA0:	A5E7    	LDA $E7        ; Actor slot
C3/8DA2:	C910    	CMP #$10       ; Done all 16?
C3/8DA4:	D0CE    	BNE $8D74      ; Loop if not

Fork: Handle next eligible actor
C3/8DA6:	A6F3    	LDX $F3        ; List slot
C3/8DA8:	E8      	INX            ; List slot +1
C3/8DA9:	E01000  	CPX #$0010     ; Done all 16?
C3/8DAC:	D0BA    	BNE $8D68      ; Loop if not

Fork: End and draw new list
C3/8DAE:	A9FF    	LDA #$FF       ; Terminator
C3/8DB0:	8D8021  	STA $2180      ; End list
C3/8DB3:	7B      	TDC            ; Clear A
C3/8DB4:	AA      	TAX            ; List slot: 1
C3/8DB5:	BF099E7E	LDA $7E9E09,X  ; Actor in slot
C3/8DB9:	3021    	BMI $8DDC      ; Exit if none
C3/8DBB:	DA      	PHX            ; Save slot
C3/8DBC:	DA      	PHX            ; Save slot
C3/8DBD:	C220    	REP #$20       ; 16-bit A
C3/8DBF:	0A      	ASL A          ; Actor x2
C3/8DC0:	AA      	TAX            ; Index it
C3/8DC1:	BFDB70C3	LDA $C370DB,X  ; Actor address
C3/8DC5:	8567    	STA $67        ; Memorize it
C3/8DC7:	FA      	PLX            ; List slot
C3/8DC8:	8A      	TXA            ; Put in A
C3/8DC9:	0A      	ASL A          ; Double it
C3/8DCA:	AA      	TAX            ; Index it
C3/8DCB:	BFDD8DC3	LDA $C38DDD,X  ; Position
C3/8DCF:	A8      	TAY            ; Put in Y
C3/8DD0:	E220    	SEP #$20       ; 8-bit A
C3/8DD2:	206A35  	JSR $356A      ; Draw name
C3/8DD5:	FA      	PLX            ; List slot
C3/8DD6:	E8      	INX            ; List slot +1
C3/8DD7:	E00E00  	CPX #$000E     ; Done all 14?
C3/8DDA:	D0D9    	BNE $8DB5      ; Loop if not
C3/8DDC:	60      	RTS

Text positions for gear data menu
C3/8DDD:	CF7D    	; Actor name 1
C3/8DDF:	E37D    	; Actor name 2
C3/8DE1:	F77D    	; Actor name 3
C3/8DE3:	4F7E    	; Actor name 4
C3/8DE5:	637E    	; Actor name 5
C3/8DE7:	777E    	; Actor name 6
C3/8DE9:	CF7E    	; Actor name 7
C3/8DEB:	E37E    	; Actor name 8
C3/8DED:	F77E    	; Actor name 9
C3/8DEF:	4F7F    	; Actor name 10
C3/8DF1:	637F    	; Actor name 11
C3/8DF3:	777F    	; Actor name 12
C3/8DF5:	CF7F    	; Actor name 13
C3/8DF7:	E37F    	; Actor name 14
C3/8DF9:	F77F    	; Actor name 15 (unused)

Draw all gear info except compatible actors
C3/8DFB:	20D571  	JSR $71D5      ; Clear BG3 map B
C3/8DFE:	A92C    	LDA #$2C       ; Palette 3
C3/8E00:	8529    	STA $29        ; Color: Blue
C3/8E02:	A2CC94  	LDX #$94CC     ; Text ptrs loc
C3/8E05:	A01C00  	LDY #$001C     ; Strings: 14
C3/8E08:	202C71  	JSR $712C      ; Draw Vigor, etc.
C3/8E0B:	A92C    	LDA #$2C       ; ...
C3/8E0D:	8529    	STA $29        ; ...
C3/8E0F:	A2E894  	LDX #$94E8     ; Text ptrs loc
C3/8E12:	A00800  	LDY #$0008     ; Strings: 4
C3/8E15:	204E71  	JSR $714E      ; Draw Speed, etc.

Fork: Draw stat modifiers
C3/8E18:	A920    	LDA #$20       ; Palette 0
C3/8E1A:	8529    	STA $29        ; Color: User's
C3/8E1C:	7B      	TDC            ; Clear A
C3/8E1D:	A54B    	LDA $4B        ; Selected slot
C3/8E1F:	A8      	TAY            ; Index it
C3/8E20:	B96918  	LDA $1869,Y    ; Item in slot
C3/8E23:	20A28A  	JSR $8AA2      ; Compute index
C3/8E26:	AE3421  	LDX $2134      ; Load it
C3/8E29:	7B      	TDC            ; Terminator
C3/8E2A:	8F8D9E7E	STA $7E9E8D    ; Set mod B3
C3/8E2E:	8F8E9E7E	STA $7E9E8E    ; Set mod B4
C3/8E32:	C220    	REP #$20       ; 16-bit A
C3/8E34:	A94584  	LDA #$8445     ; Tilemap ptr
C3/8E37:	8F899E7E	STA $7E9E89    ; Set position
C3/8E3B:	E220    	SEP #$20       ; 8-bit A
C3/8E3D:	7B      	TDC            ; Clear A
C3/8E3E:	BF1050D8	LDA $D85010,X  ; Stat mods LB
C3/8E42:	48      	PHA            ; Memorize them
C3/8E43:	290F    	AND #$0F       ; Vigor index
C3/8E45:	0A      	ASL A          ; Double it
C3/8E46:	20C08F  	JSR $8FC0      ; Draw modifier
C3/8E49:	C220    	REP #$20       ; 16-bit A
C3/8E4B:	A9C584  	LDA #$84C5     ; Tilemap ptr
C3/8E4E:	8F899E7E	STA $7E9E89    ; Set position
C3/8E52:	E220    	SEP #$20       ; 8-bit A
C3/8E54:	7B      	TDC            ; Clear A
C3/8E55:	68      	PLA            ; Stat mods LB
C3/8E56:	29F0    	AND #$F0       ; Speed index
C3/8E58:	4A      	LSR A          ; Put in b3-b6
C3/8E59:	4A      	LSR A          ; Put in b2-b5
C3/8E5A:	4A      	LSR A          ; Put in b1-b4
C3/8E5B:	20C08F  	JSR $8FC0      ; Draw modifier
C3/8E5E:	C220    	REP #$20       ; 16-bit A
C3/8E60:	A94585  	LDA #$8545     ; Tilemap ptr
C3/8E63:	8F899E7E	STA $7E9E89    ; Set position
C3/8E67:	E220    	SEP #$20       ; 8-bit A
C3/8E69:	AE3421  	LDX $2134      ; Item index
C3/8E6C:	7B      	TDC            ; Clear A
C3/8E6D:	BF1150D8	LDA $D85011,X  ; Stats mods HB
C3/8E71:	48      	PHA            ; Memorize them
C3/8E72:	290F    	AND #$0F       ; Stamina index
C3/8E74:	0A      	ASL A          ; Double it
C3/8E75:	20C08F  	JSR $8FC0      ; Draw modifier
C3/8E78:	C220    	REP #$20       ; 16-bit A
C3/8E7A:	A9C585  	LDA #$85C5     ; Tilemap ptr
C3/8E7D:	8F899E7E	STA $7E9E89    ; Set position
C3/8E81:	E220    	SEP #$20       ; 8-bit A
C3/8E83:	7B      	TDC            ; Clear A
C3/8E84:	68      	PLA            ; Stat mods HB
C3/8E85:	29F0    	AND #$F0       ; Mag.Pwr index
C3/8E87:	4A      	LSR A          ; Put in b3-b6
C3/8E88:	4A      	LSR A          ; Put in b2-b5
C3/8E89:	4A      	LSR A          ; Put in b1-b4
C3/8E8A:	20C08F  	JSR $8FC0      ; Draw modifier

Fork: Draw defensive properties
C3/8E8D:	AE3421  	LDX $2134      ; Item index
C3/8E90:	BF0050D8	LDA $D85000,X  ; Properties
C3/8E94:	2907    	AND #$07       ; Get class
C3/8E96:	C901    	CMP #$01       ; Weapon?
C3/8E98:	F036    	BEQ $8ED0      ; Branch if so
C3/8E9A:	BF1450D8	LDA $D85014,X  ; Defense
C3/8E9E:	206305  	JSR $0563      ; Turn into text
C3/8EA1:	A2C386  	LDX #$86C3     ; Text position
C3/8EA4:	204305  	JSR $0543      ; Draw 3 digits
C3/8EA7:	AE3421  	LDX $2134      ; Item index
C3/8EAA:	BF1550D8	LDA $D85015,X  ; Mag.Def
C3/8EAE:	206305  	JSR $0563      ; Turn into text
C3/8EB1:	A2C387  	LDX #$87C3     ; Text position
C3/8EB4:	204305  	JSR $0543      ; Draw 3 digits
C3/8EB7:	20758F  	JSR $8F75      ; Draw evasions
C3/8EBA:	202A90  	JSR $902A      ; Draw 50% elems
C3/8EBD:	20E390  	JSR $90E3      ; Draw other ones
C3/8EC0:	A92C    	LDA #$2C       ; Palette 3
C3/8EC2:	8529    	STA $29        ; Color: Blue
C3/8EC4:	A2F094  	LDX #$94F0     ; Text ptrs loc
C3/8EC7:	A00800  	LDY #$0008     ; Strings: 4
C3/8ECA:	204E71  	JSR $714E      ; Draw elem types
C3/8ECD:	4C518F  	JMP $8F51      ; Do spell taught

Fork: Draw offensive properties
C3/8ED0:	20268F  	JSR $8F26      ; Draw Bat.Pwr
C3/8ED3:	20758F  	JSR $8F75      ; Draw evasions
C3/8ED6:	A92C    	LDA #$2C       ; Palette 3
C3/8ED8:	8529    	STA $29        ; Color: Blue
C3/8EDA:	A08A95  	LDY #$958A     ; Text pointer
C3/8EDD:	202603  	JSR $0326      ; Draw "Attack"
C3/8EE0:	202A90  	JSR $902A      ; Draw elements
C3/8EE3:	A920    	LDA #$20       ; Palette 0
C3/8EE5:	8529    	STA $29        ; Color: User's
C3/8EE7:	AE3421  	LDX $2134      ; Item index
C3/8EEA:	BF1350D8	LDA $D85013,X  ; Allows Runic?
C3/8EEE:	1008    	BPL $8EF8      ; Branch if not
C3/8EF0:	A09D95  	LDY #$959D     ; Text pointer
C3/8EF3:	84E7    	STY $E7        ; Set src LBs
C3/8EF5:	201F8F  	JSR $8F1F      ; Draw "Runic"
C3/8EF8:	AE3421  	LDX $2134      ; Item index
C3/8EFB:	BF1350D8	LDA $D85013,X  ; Properties
C3/8EFF:	2940    	AND #$40       ; 2-hand OK?
C3/8F01:	F008    	BEQ $8F0B      ; Branch if not
C3/8F03:	A0A995  	LDY #$95A9     ; Text pointer
C3/8F06:	84E7    	STY $E7        ; Set src LBs
C3/8F08:	201F8F  	JSR $8F1F      ; Draw "2-hand"
C3/8F0B:	AE3421  	LDX $2134      ; Item index
C3/8F0E:	BF1350D8	LDA $D85013,X  ; Properties
C3/8F12:	2902    	AND #$02       ; Can SwdTech?
C3/8F14:	F008    	BEQ $8F1E      ; Exit if not
C3/8F16:	A09195  	LDY #$9591     ; Text pointer
C3/8F19:	84E7    	STY $E7        ; Set src LBs
C3/8F1B:	201F8F  	JSR $8F1F      ; Draw "SwdTech"
C3/8F1E:	60      	RTS

Draw string for the above
C3/8F1F:	A9C3    	LDA #$C3       ; Bank: C3
C3/8F21:	85E9    	STA $E9        ; Set src HB
C3/8F23:	4CFF02  	JMP $02FF      ; Draw text

Draw weapon's Bat.Pwr in gear data menu
C3/8F26:	7B      	TDC            ; Clear A
C3/8F27:	A54B    	LDA $4B        ; Clicked slot
C3/8F29:	A8      	TAY            ; Index it
C3/8F2A:	B96918  	LDA $1869,Y    ; Item in slot
C3/8F2D:	C91C    	CMP #$1C       ; Atma Weapon?
C3/8F2F:	F019    	BEQ $8F4A      ; Hide if so
C3/8F31:	C916    	CMP #$16       ; Soul Sabre?
C3/8F33:	F015    	BEQ $8F4A      ; Hide if so
C3/8F35:	C951    	CMP #$51       ; Dice?
C3/8F37:	F011    	BEQ $8F4A      ; Hide if so
C3/8F39:	C952    	CMP #$52       ; Fixed Dice?
C3/8F3B:	F00D    	BEQ $8F4A      ; Hide if so
C3/8F3D:	BF1450D8	LDA $D85014,X  ; Bat.Pwr
C3/8F41:	206305  	JSR $0563      ; Turn into text
C3/8F44:	A24386  	LDX #$8643     ; Text position
C3/8F47:	4C4305  	JMP $0543      ; Draw 3 digits

Fork: Hide power
C3/8F4A:	A0F894  	LDY #$94F8     ; Text pointer
C3/8F4D:	20F902  	JSR $02F9      ; Draw "???"
C3/8F50:	60      	RTS

Draw spell taught by armor, including learning rate
C3/8F51:	A920    	LDA #$20       ; Palette 0
C3/8F53:	8529    	STA $29        ; Color: User's
C3/8F55:	AE3421  	LDX $2134      ; Item index
C3/8F58:	BF0350D8	LDA $D85003,X  ; Learning rate
C3/8F5C:	F016    	BEQ $8F74      ; Exit if 0
C3/8F5E:	85E0    	STA $E0        ; Memorize it
C3/8F60:	BF0450D8	LDA $D85004,X  ; Spell taught
C3/8F64:	85E1    	STA $E1        ; Memorize it
C3/8F66:	C220    	REP #$20       ; 16-bit A
C3/8F68:	A9EF82  	LDA #$82EF     ; Tilemap ptr
C3/8F6B:	8F899E7E	STA $7E9E89    ; Set position
C3/8F6F:	E220    	SEP #$20       ; 8-bit A
C3/8F71:	204261  	JSR $6142      ; Draw string
C3/8F74:	60      	RTS

Draw Evade and MBlock modifiers for gear data menu
C3/8F75:	C220    	REP #$20       ; 16-bit A
C3/8F77:	A94387  	LDA #$8743     ; Tilemap ptr
C3/8F7A:	8F899E7E	STA $7E9E89    ; Set position
C3/8F7E:	E220    	SEP #$20       ; 8-bit A
C3/8F80:	AE3421  	LDX $2134      ; Item index
C3/8F83:	7B      	TDC            ; Clear A
C3/8F84:	BF1A50D8	LDA $D8501A,X  ; Evasion mods
C3/8F88:	48      	PHA            ; Memorize them
C3/8F89:	290F    	AND #$0F       ; Evade index
C3/8F8B:	0A      	ASL A          ; x2
C3/8F8C:	0A      	ASL A          ; x4
C3/8F8D:	20A48F  	JSR $8FA4      ; Draw modifier
C3/8F90:	C220    	REP #$20       ; 16-bit A
C3/8F92:	A94388  	LDA #$8843     ; Tilemap ptr
C3/8F95:	8F899E7E	STA $7E9E89    ; Set position
C3/8F99:	E220    	SEP #$20       ; 8-bit A
C3/8F9B:	AE3421  	LDX $2134      ; Item index
C3/8F9E:	7B      	TDC            ; Clear A
C3/8F9F:	68      	PLA            ; Evasion mods
C3/8FA0:	29F0    	AND #$F0       ; MBlock index
C3/8FA2:	4A      	LSR A          ; 2
C3/8FA3:	4A      	LSR A          ; 4
C3/8FA4:	AA      	TAX            ; Index it
C3/8FA5:	BFDE8FC3	LDA $C38FDE,X  ; Sign
C3/8FA9:	8F8B9E7E	STA $7E9E8B    ; Add to string
C3/8FAD:	BFDF8FC3	LDA $C38FDF,X  ; Tens digit
C3/8FB1:	8F8C9E7E	STA $7E9E8C    ; Add to string
C3/8FB5:	BFE08FC3	LDA $C38FE0,X  ; Ones digit
C3/8FB9:	8F8D9E7E	STA $7E9E8D    ; Add to string
C3/8FBD:	4CD18F  	JMP $8FD1      ; Draw modifier

Draw a non-evasion stat modifier for gear data menu
C3/8FC0:	AA      	TAX            ; Modifier index
C3/8FC1:	BF0A90C3	LDA $C3900A,X  ; Sign
C3/8FC5:	8F8B9E7E	STA $7E9E8B    ; Add to string
C3/8FC9:	BF0B90C3	LDA $C3900B,X  ; Digit
C3/8FCD:	8F8C9E7E	STA $7E9E8C    ; Add to string
C3/8FD1:	A0899E  	LDY #$9E89     ; 7E/9E89
C3/8FD4:	84E7    	STY $E7        ; Set src LBs
C3/8FD6:	A97E    	LDA #$7E       ; Bank: 7E
C3/8FD8:	85E9    	STA $E9        ; Set src HB
C3/8FDA:	20FF02  	JSR $02FF      ; Draw modifier
C3/8FDD:	60      	RTS

Text for evasion modifiers
C3/8FDE:	FFFF5300	;   0
C3/8FE2:	D3545300	; +10
C3/8FE6:	D3555300	; +20
C3/8FEA:	D3565300	; +30
C3/8FEE:	D3575300	; +40
C3/8FF2:	D3585300	; +50
C3/8FF6:	C5545300	; -10
C3/8FFA:	C5555300	; -20
C3/8FFE:	C5565300	; -30
C3/9002:	C5575300	; -40
C3/9006:	C5585300	; -50

Text for non-evasion stat modifiers
C3/900A:	FF53    	;  0
C3/900C:	D354    	; +1
C3/900E:	D355    	; +2
C3/9010:	D356    	; +3
C3/9012:	D357    	; +4
C3/9014:	D358    	; +5
C3/9016:	D359    	; +6
C3/9018:	D35A    	; +7
C3/901A:	FF53    	;  0 (unused)
C3/901C:	C554    	; -1
C3/901E:	C555    	; -2
C3/9020:	C556    	; -3
C3/9022:	C557    	; -4
C3/9024:	C558    	; -5
C3/9026:	C559    	; -6
C3/9028:	C55A    	; -7

Build and draw list of attack or halved elements
C3/902A:	AE3421  	LDX $2134      ; Item index
C3/902D:	7B      	TDC            ; ...
C3/902E:	BF0F50D8	LDA $D8500F,X  ; Elements
C3/9032:	203890  	JSR $9038      ; Build list
C3/9035:	4C5890  	JMP $9058      ; Draw list

Build current list of elements
C3/9038:	A08DAA  	LDY #$AA8D     ; 7E/AA8D
C3/903B:	8C8121  	STY $2181      ; Set WRAM LBs
C3/903E:	64E0    	STZ $E0        ; Current: Water
C3/9040:	A00800  	LDY #$0008     ; Elements: 8
C3/9043:	2A      	ROL A          ; Draw current?
C3/9044:	9007    	BCC $904D      ; Skip it if not
C3/9046:	48      	PHA            ; Save elements
C3/9047:	A5E0    	LDA $E0        ; Current element
C3/9049:	8D8021  	STA $2180      ; Add to list
C3/904C:	68      	PLA            ; Elements left
C3/904D:	E6E0    	INC $E0        ; Elem number +1
C3/904F:	88      	DEY            ; One less left
C3/9050:	D0F1    	BNE $9043      ; Loop till last
C3/9052:	A9FF    	LDA #$FF       ; Terminator
C3/9054:	8D8021  	STA $2180      ; End list
C3/9057:	60      	RTS

Draw list of attack or halved elements
C3/9058:	A2CD7B  	LDX #$7BCD     ; Tilemap ptr
C3/905B:	86EB    	STX $EB        ; Set dest LBs
C3/905D:	A97E    	LDA #$7E       ; Bank: 7E
C3/905F:	85ED    	STA $ED        ; Set dest HB
C3/9061:	4C8890  	JMP $9088      ; Draw list

Draw list of absorbed elements
C3/9064:	A2E97B  	LDX #$7BE9     ; Tilemap ptr
C3/9067:	86EB    	STX $EB        ; Set dest LBs
C3/9069:	A97E    	LDA #$7E       ; Bank: 7E
C3/906B:	85ED    	STA $ED        ; Set dest HB
C3/906D:	4C8890  	JMP $9088      ; Draw list

Draw list of nulled elements
C3/9070:	A2CD7C  	LDX #$7CCD     ; Tilemap ptr
C3/9073:	86EB    	STX $EB        ; Set dest LBs
C3/9075:	A97E    	LDA #$7E       ; Bank: 7E
C3/9077:	85ED    	STA $ED        ; Set dest HB
C3/9079:	4C8890  	JMP $9088      ; Draw list

Draw list of elemental weaknesses
C3/907C:	A2E97C  	LDX #$7CE9     ; Tilemap ptr
C3/907F:	86EB    	STX $EB        ; Set dest LBs
C3/9081:	A97E    	LDA #$7E       ; Bank: 7E
C3/9083:	85ED    	STA $ED        ; Set dest HB
C3/9085:	4C8890  	JMP $9088      ; ...

Draw current list of elements
C3/9088:	7B      	TDC            ; Clear A
C3/9089:	AA      	TAX            ; Index: 0
C3/908A:	7B      	TDC            ; Clear A
C3/908B:	BF8DAA7E	LDA $7EAA8D,X  ; Element to draw
C3/908F:	301F    	BMI $90B0      ; Exit if no more
C3/9091:	DA      	PHX            ; Save list index
C3/9092:	C220    	REP #$20       ; 16-bit A
C3/9094:	0A      	ASL A          ; Element x2
C3/9095:	AA      	TAX            ; Index it
C3/9096:	BFB190C3	LDA $C390B1,X  ; Tilemap data
C3/909A:	85E0    	STA $E0        ; Memorize it
C3/909C:	20C190  	JSR $90C1      ; Draw element
C3/909F:	A5EB    	LDA $EB        ; Tilemap ptr
C3/90A1:	18      	CLC            ; ...
C3/90A2:	690400  	ADC #$0004     ; Skip 2 tiles
C3/90A5:	85EB    	STA $EB        ; Save changes
C3/90A7:	E220    	SEP #$20       ; 8-bit A
C3/90A9:	FA      	PLX            ; List index
C3/90AA:	E8      	INX            ; List index +1
C3/90AB:	E00600  	CPX #$0006     ; Done 6 entries?
C3/90AE:	D0DA    	BNE $908A      ; Loop if not
C3/90B0:	60      	RTS

Base tile attributes for each element
C3/90B1:	8035    	; Water
C3/90B3:	8435    	; Earth
C3/90B5:	8835    	; Pearl
C3/90B7:	8C35    	; Wind
C3/90B9:	9035    	; Poison
C3/90BB:	9435    	; Lightning
C3/90BD:	9835    	; Ice
C3/90BF:	9C35    	; Fire

Draw current element
C3/90C1:	7B      	TDC            ; Clear A
C3/90C2:	A8      	TAY            ; Map ptr: NW
C3/90C3:	A5E0    	LDA $E0        ; Attributes
C3/90C5:	97EB    	STA [$EB],Y    ; Set NW tile
C3/90C7:	E6E0    	INC $E0        ; Tile num +1
C3/90C9:	A04000  	LDY #$0040     ; Map ptr: SW
C3/90CC:	A5E0    	LDA $E0        ; Attributes
C3/90CE:	97EB    	STA [$EB],Y    ; Set SW tile
C3/90D0:	E6E0    	INC $E0        ; Tile num +1
C3/90D2:	A00200  	LDY #$0002     ; Map ptr: NE
C3/90D5:	A5E0    	LDA $E0        ; Attributes
C3/90D7:	97EB    	STA [$EB],Y    ; Set NE tile
C3/90D9:	E6E0    	INC $E0        ; Tile num +1
C3/90DB:	A04200  	LDY #$0042     ; Map ptr: SE
C3/90DE:	A5E0    	LDA $E0        ; Attributes
C3/90E0:	97EB    	STA [$EB],Y    ; Set SE tile
C3/90E2:	60      	RTS

Build and draw list of absorbed, nulled, and weak elements
C3/90E3:	AE3421  	LDX $2134      ; Item index
C3/90E6:	7B      	TDC            ; ...
C3/90E7:	BF1650D8	LDA $D85016,X  ; Absorbed elements
C3/90EB:	203890  	JSR $9038      ; Build list
C3/90EE:	206490  	JSR $9064      ; Draw list
C3/90F1:	AE3421  	LDX $2134      ; Item index
C3/90F4:	7B      	TDC            ; ...
C3/90F5:	BF1750D8	LDA $D85017,X  ; Nulled elements
C3/90F9:	203890  	JSR $9038      ; Build list
C3/90FC:	207090  	JSR $9070      ; Draw list
C3/90FF:	AE3421  	LDX $2134      ; Item index
C3/9102:	7B      	TDC            ; ...
C3/9103:	BF1850D8	LDA $D85018,X  ; Weak points
C3/9107:	203890  	JSR $9038      ; Build list
C3/910A:	4C7C90  	JMP $907C      ; Draw list

64: Sustain non-shifted gear data menu
C3/910D:	A508    	LDA $08        ; No-autofire keys
C3/910F:	8980    	BIT #$80       ; Pushing A?
C3/9111:	D006    	BNE $9119      ; Branch if so
C3/9113:	A509    	LDA $09        ; No-autofire keys
C3/9115:	8902    	BIT #$02       ; Pushing left?
C3/9117:	F019    	BEQ $9132      ; Branch if not
C3/9119:	201D0F  	JSR $0F1D      ; Sound: Click
C3/911C:	A9FF    	LDA #$FF       ; Status: Off
C3/911E:	8599    	STA $99        ; Disable arrow
C3/9120:	A90A    	LDA #$0A       ; Frames: 10
C3/9122:	8520    	STA $20        ; Set scroll timer
C3/9124:	A0F4FF  	LDY #$FFF4     ; Speed: -12
C3/9127:	849C    	STY $9C        ; Set scroll speed
C3/9129:	A95E    	LDA #$5E       ; C3/9170
C3/912B:	8527    	STA $27        ; Queue: Moved menu
C3/912D:	A965    	LDA #$65       ; C3/37AF
C3/912F:	8526    	STA $26        ; Next: Pan screen
C3/9131:	60      	RTS

Fork: Handle B
C3/9132:	A509    	LDA $09        ; No-autofire keys
C3/9134:	8980    	BIT #$80       ; Pushing B?
C3/9136:	F02F    	BEQ $9167      ; Exit if not
C3/9138:	20140F  	JSR $0F14      ; Sound: Cursor
C3/913B:	A9FF    	LDA #$FF       ; Status: Off
C3/913D:	8599    	STA $99        ; Disable arrow
C3/913F:	A2497B  	LDX #$7B49     ; 7E/7B49
C3/9142:	8E8121  	STX $2181      ; Set WRAM LBs
C3/9145:	A28002  	LDX #$0280     ; BG3 tiles: 640
C3/9148:	9C8021  	STZ $2180      ; Clear tile LB
C3/914B:	9C8021  	STZ $2180      ; Clear tile HB
C3/914E:	CA      	DEX            ; One less tile
C3/914F:	D0F7    	BNE $9148      ; Loop till last
C3/9151:	A904    	LDA #$04       ; Show cursor: Y
C3/9153:	0445    	TSB $45        ; Set menu flag
C3/9155:	206891  	JSR $9168      ; Desc/Bar: On
C3/9158:	20A40F  	JSR $0FA4      ; Queue BG3 upload
C3/915B:	20D313  	JSR $13D3      ; Upload it now
C3/915E:	7B      	TDC            ; BG1 H-Shift: 0
C3/915F:	8F109A7E	STA $7E9A10    ; Unhide item list
C3/9163:	A908    	LDA #$08       ; C3/1F5D
C3/9165:	8526    	STA $26        ; Next: Choice 1
C3/9167:	60      	RTS

Create scrollbar and set to update description
C3/9168:	20A409  	JSR $09A4      ; Create scrollbar
C3/916B:	A910    	LDA #$10       ; Description: On
C3/916D:	1445    	TRB $45        ; Set menu flag
C3/916F:	60      	RTS

5E: Sustain shifted gear data menu
C3/9170:	A509    	LDA $09        ; No-autofire keys
C3/9172:	8980    	BIT #$80       ; Pushing B?
C3/9174:	D006    	BNE $917C      ; Branch if so
C3/9176:	A509    	LDA $09        ; ...
C3/9178:	8901    	BIT #$01       ; Pushing right?
C3/917A:	F01B    	BEQ $9197      ; Exit if not
C3/917C:	20140F  	JSR $0F14      ; Sound: Cursor
C3/917F:	A90A    	LDA #$0A       ; Frames: 10
C3/9181:	8520    	STA $20        ; Set scroll timer
C3/9183:	A00C00  	LDY #$000C     ; Speed: 12
C3/9186:	849C    	STY $9C        ; Set scroll speed
C3/9188:	A905    	LDA #$05       ; Blinker: Off...
C3/918A:	1446    	TRB $46        ; Set menu flag
C3/918C:	A964    	LDA #$64       ; C3/910D
C3/918E:	8527    	STA $27        ; Queue screen 1
C3/9190:	A965    	LDA #$65       ; C3/37AF
C3/9192:	8526    	STA $26        ; Next: Pan screen
C3/9194:	20208D  	JSR $8D20      ; Create arrow
C3/9197:	60      	RTS

Draw item usage menu
C3/9198:	20BC71  	JSR $71BC      ; Clear BG2 map A
C3/919B:	A0C591  	LDY #$91C5     ; C3/91C5
C3/919E:	20C403  	JSR $03C4      ; Draw party box
C3/91A1:	A0C991  	LDY #$91C9     ; C3/91C9
C3/91A4:	20C403  	JSR $03C4      ; Draw item box
C3/91A7:	A0CD91  	LDY #$91CD     ; C3/91CD
C3/91AA:	20C403  	JSR $03C4      ; Draw quantity box
C3/91AD:	20BD0E  	JSR $0EBD      ; Upload windows
C3/91B0:	20AD71  	JSR $71AD      ; Clear BG1 map B
C3/91B3:	A0C0FF  	LDY #$FFC0     ; X: -64 = 448
C3/91B6:	8435    	STY $35        ; Set BG1 X-Pos
C3/91B8:	A902    	LDA #$02       ; Portrait row bit
C3/91BA:	0445    	TSB $45        ; Ignore back row
C3/91BC:	202532  	JSR $3225      ; Draw party info
C3/91BF:	20D191  	JSR $91D1      ; Draw item info
C3/91C2:	4C3A32  	JMP $323A      ; Upload text maps

Window layout for item usage menu
C3/91C5:	9D581318	; 21x26 at $589D (Party)
C3/91C9:	8B580802	; 10x04 at $588B (Item)
C3/91CD:	8B590703	; 09x05 at $598B (Quantity)

Draw item info for item usage menu
C3/91D1:	A920    	LDA #$20       ; Palette 0
C3/91D3:	8529    	STA $29        ; Color: User's
C3/91D5:	A0B595  	LDY #$95B5     ; Text pointer
C3/91D8:	202603  	JSR $0326      ; Draw "Owned:"
C3/91DB:	C220    	REP #$20       ; 16-bit A
C3/91DD:	A9CB78  	LDA #$78CB     ; Tilemap ptr
C3/91E0:	8F899E7E	STA $7E9E89    ; Set position
C3/91E4:	E220    	SEP #$20       ; 8-bit A
C3/91E6:	7B      	TDC            ; Clear A
C3/91E7:	A54B    	LDA $4B        ; Item's slot
C3/91E9:	A8      	TAY            ; Index it
C3/91EA:	203A88  	JSR $883A      ; Load "<item>:"
C3/91ED:	7B      	TDC            ; Terminator
C3/91EE:	8F949E7E	STA $7E9E94    ; Remove ":"
C3/91F2:	20B987  	JSR $87B9      ; Draw item
C3/91F5:	8000    	BRA $91F7      ; ...

Draw quantity owned for item usage menu
C3/91F7:	A920    	LDA #$20       ; Palette 0
C3/91F9:	8529    	STA $29        ; Color: User's
C3/91FB:	7B      	TDC            ; Clear A
C3/91FC:	A528    	LDA $28        ; Item's slot
C3/91FE:	A8      	TAY            ; Index it
C3/91FF:	B96919  	LDA $1969,Y    ; Item quantity
C3/9202:	206305  	JSR $0563      ; Turn into text
C3/9205:	A2937A  	LDX #$7A93     ; Text position
C3/9208:	203905  	JSR $0539      ; Draw 2 digits
C3/920B:	4CB987  	JMP $87B9      ; Redraw item...

6F: Initialize item usage menu
C3/920E:	20112B  	JSR $2B11      ; Init variables
C3/9211:	209891  	JSR $9198      ; Draw menu
C3/9214:	203308  	JSR $0833      ; Queue cursor OAM
C3/9217:	A940    	LDA #$40       ; No cursor memory
C3/9219:	0445    	TSB $45        ; Set menu flag
C3/921B:	A970    	LDA #$70       ; Queue: Sustain menu
C3/921D:	4C402B  	JMP $2B40      ; Next: Fade-in

70: Sustain item usage menu
C3/9220:	20680F  	JSR $0F68      ; Queue stats upload
C3/9223:	20CC0F  	JSR $0FCC      ; And item info's
C3/9226:	A508    	LDA $08        ; No-autofire keys
C3/9228:	8980    	BIT #$80       ; Pushing A?
C3/922A:	F00A    	BEQ $9236      ; Branch if not
C3/922C:	20B593  	JSR $93B5      ; Item
C3/922F:	C9E7    	CMP #$E7       ; Rename Card?
C3/9231:	F017    	BEQ $924A      ; Branch if so
C3/9233:	207192  	JSR $9271      ; Handle item usage

Fork: Handle B
C3/9236:	A509    	LDA $09        ; No-autofire keys
C3/9238:	8980    	BIT #$80       ; Pushing B?
C3/923A:	F00D    	BEQ $9249      ; Exit if not
C3/923C:	20140F  	JSR $0F14      ; Sound: Cursor
C3/923F:	A942    	LDA #$42       ; Allow back row
C3/9241:	1445    	TRB $45        ; And cursor memory
C3/9243:	A977    	LDA #$77       ; C3/1B9B
C3/9245:	8527    	STA $27        ; Queue Item menu
C3/9247:	6426    	STZ $26        ; Next: Fade-out
C3/9249:	60      	RTS

Fork: Rename Card
C3/924A:	20A62D  	JSR $2DA6      ; Define Y
C3/924D:	B90000  	LDA $0000,Y    ; Actor
C3/9250:	C90E    	CMP #$0E       ; Guest?
C3/9252:	B016    	BCS $926A      ; Fail if so
C3/9254:	8C0602  	STY $0206      ; Save actor adr
C3/9257:	201D0F  	JSR $0F1D      ; Sound: Click
C3/925A:	A9FE    	LDA #$FE       ; Actor renaming
C3/925C:	8D0502  	STA $0205      ; Set next menu
C3/925F:	A9FF    	LDA #$FF       ; Null value
C3/9261:	8527    	STA $27        ; Queue menu exit
C3/9263:	6426    	STZ $26        ; Next: Fade-out
C3/9265:	A9E7    	LDA #$E7       ; Item number
C3/9267:	4CA5A5  	JMP $A5A5      ; Destroy item

Fork: Prevent guest renaming
C3/926A:	202B0F  	JSR $0F2B      ; Play buzzer
C3/926D:	20F830  	JSR $30F8      ; Pixelate screen
C3/9270:	60      	RTS

Handle item usage, excluding Rename Card
C3/9271:	20B593  	JSR $93B5      ; ...
C3/9274:	20A62D  	JSR $2DA6      ; Target's address
C3/9277:	20C792  	JSR $92C7      ; Valid target?
C3/927A:	9018    	BCC $9294      ; Fail if not
C3/927C:	20500F  	JSR $0F50      ; Play heal sound
C3/927F:	209B92  	JSR $929B      ; Heal & destroy
C3/9282:	20F791  	JSR $91F7      ; Redraw quantity
C3/9285:	209C2C  	JSR $2C9C      ; Redraw party
C3/9288:	7B      	TDC            ; Clear A
C3/9289:	A528    	LDA $28        ; Item's slot
C3/928B:	A8      	TAY            ; Index it
C3/928C:	B96919  	LDA $1969,Y    ; Item quantity
C3/928F:	D009    	BNE $929A      ; Exit if not 0
C3/9291:	4C3F92  	JMP $923F      ; Close submenu
C3/9294:	202B0F  	JSR $0F2B      ; Play buzzer
C3/9297:	20F830  	JSR $30F8      ; Pixelate screen
C3/929A:	60      	RTS

Heal item's target, destroy item
C3/929B:	20A492  	JSR $92A4      ; Heal target
C3/929E:	20B593  	JSR $93B5      ; Selected item
C3/92A1:	4CA5A5  	JMP $A5A5      ; Destroy item

Adjust item target's HP, MP, and status
C3/92A4:	B91400  	LDA $0014,Y    ; Status LB
C3/92A7:	85F8    	STA $F8        ; Set target's
C3/92A9:	B91500  	LDA $0015,Y    ; Status HB
C3/92AC:	85FB    	STA $FB        ; Set target's
C3/92AE:	5A      	PHY            ; Save index
C3/92AF:	20B593  	JSR $93B5      ; Item number
C3/92B2:	A20200  	LDX #$0002     ; Mode: Item
C3/92B5:	220900C2	JSL $C20009    ; Get new status
C3/92B9:	7A      	PLY            ; Actor's address
C3/92BA:	A5FC    	LDA $FC        ; Status LB
C3/92BC:	991400  	STA $0014,Y    ; Set actor's
C3/92BF:	A5FF    	LDA $FF        ; Status HB
C3/92C1:	991500  	STA $0015,Y    ; Set actor's
C3/92C4:	4CBD93  	JMP $93BD      ; Heal HP & MP

Determine whether item target is valid
C3/92C7:	B91400  	LDA $0014,Y    ; Status
C3/92CA:	2980    	AND #$80       ; Wound?
C3/92CC:	D041    	BNE $930F      ; Branch if so
C3/92CE:	20B593  	JSR $93B5      ; Item
C3/92D1:	C9FE    	CMP #$FE       ; Dried Meat?
C3/92D3:	F079    	BEQ $934E      ; Branch if so
C3/92D5:	C9E8    	CMP #$E8       ; Tonic?
C3/92D7:	F075    	BEQ $934E      ; Branch if so
C3/92D9:	C9E9    	CMP #$E9       ; Potion?
C3/92DB:	F071    	BEQ $934E      ; Branch if so
C3/92DD:	C9EA    	CMP #$EA       ; X-Potion?
C3/92DF:	F06D    	BEQ $934E      ; Branch if so
C3/92E1:	C9EB    	CMP #$EB       ; Tincture?
C3/92E3:	F07A    	BEQ $935F      ; Branch if so
C3/92E5:	C9EC    	CMP #$EC       ; Ether?
C3/92E7:	F076    	BEQ $935F      ; Branch if so
C3/92E9:	C9ED    	CMP #$ED       ; X-Ether?
C3/92EB:	F072    	BEQ $935F      ; Branch if so
C3/92ED:	C9F1    	CMP #$F1       ; Revivify?
C3/92EF:	F027    	BEQ $9318      ; Branch if so
C3/92F1:	C9F2    	CMP #$F2       ; Antidote?
C3/92F3:	F050    	BEQ $9345      ; Branch if so
C3/92F5:	C9F3    	CMP #$F3       ; Eyedrop?
C3/92F7:	F028    	BEQ $9321      ; Branch if so
C3/92F9:	C9F4    	CMP #$F4       ; Soft?
C3/92FB:	F02D    	BEQ $932A      ; Branch if so
C3/92FD:	C9F5    	CMP #$F5       ; Remedy?
C3/92FF:	F03B    	BEQ $933C      ; Branch if so
C3/9301:	C9EE    	CMP #$EE       ; Elixir?
C3/9303:	F06A    	BEQ $936F      ; Branch if so
C3/9305:	C9F8    	CMP #$F8       ; Green Cherry?
C3/9307:	F02A    	BEQ $9333      ; Branch if so
C3/9309:	C9F6    	CMP #$F6       ; Sleeping Bag?
C3/930B:	F04F    	BEQ $935C      ; Branch if so
C3/930D:	804B    	BRA $935A      ; Make item fail

Fork: Fenix Down
C3/930F:	20B593  	JSR $93B5      ; Item
C3/9312:	C9F0    	CMP #$F0       ; Fenix Down?
C3/9314:	F057    	BEQ $936D      ; Succeed if so
C3/9316:	8042    	BRA $935A      ; Make item fail

Fork: Revivify
C3/9318:	B91400  	LDA $0014,Y    ; Status
C3/931B:	2902    	AND #$02       ; Zombie?
C3/931D:	F03B    	BEQ $935A      ; Fail if not
C3/931F:	804C    	BRA $936D      ; Make item work

Fork: Eyedrop
C3/9321:	B91400  	LDA $0014,Y    ; Status
C3/9324:	2901    	AND #$01       ; Dark?
C3/9326:	F032    	BEQ $935A      ; Fail if not
C3/9328:	8043    	BRA $936D      ; Make item work

Fork: Soft
C3/932A:	B91400  	LDA $0014,Y    ; Status
C3/932D:	2940    	AND #$40       ; Petrify?
C3/932F:	F029    	BEQ $935A      ; Fail if not
C3/9331:	803A    	BRA $936D      ; Make item work

Fork: Green Cherry
C3/9333:	B91400  	LDA $0014,Y    ; Status
C3/9336:	2920    	AND #$20       ; Imp?
C3/9338:	F020    	BEQ $935A      ; Fail if not
C3/933A:	8031    	BRA $936D      ; Make item work

Fork: Remedy
C3/933C:	B91400  	LDA $0014,Y    ; Dark? Poison?
C3/933F:	2965    	AND #$65       ; Imp? Petrify?
C3/9341:	F017    	BEQ $935A      ; Fail if none
C3/9343:	8028    	BRA $936D      ; Make item work

Fork: Antidote
C3/9345:	B91400  	LDA $0014,Y    ; Status
C3/9348:	2904    	AND #$04       ; Poison?
C3/934A:	F00E    	BEQ $935A      ; Fail if not
C3/934C:	801F    	BRA $936D      ; Make item work

Fork: Dried Meat, Tonic, Potion, X-Potion
C3/934E:	B91400  	LDA $0014,Y    ; Zombie? KO?
C3/9351:	29C2    	AND #$C2       ; Or Petrify?
C3/9353:	D005    	BNE $935A      ; Fail if any
C3/9355:	20352C  	JSR $2C35      ; At full HP?
C3/9358:	9013    	BCC $936D      ; Succeed if not

Fork: Make item fail
C3/935A:	18      	CLC            ; Mark failure
C3/935B:	60      	RTS

Fork: Sleeping Bag (A)
C3/935C:	4C9B93  	JMP $939B      ; BRA...

Fork: Tincture, Ether, X-Ether
C3/935F:	B91400  	LDA $0014,Y    ; Zombie? KO?
C3/9362:	29C2    	AND #$C2       ; Or Petrify?
C3/9364:	D0F4    	BNE $935A      ; Fail if any
C3/9366:	20572C  	JSR $2C57      ; At full MP?
C3/9369:	9002    	BCC $936D      ; Succeed if not
C3/936B:	80ED    	BRA $935A      ; Make item fail

Fork: Make item work
C3/936D:	38      	SEC            ; Mark success
C3/936E:	60      	RTS

Fork: Elixir
C3/936F:	B91400  	LDA $0014,Y    ; Zombie? KO?
C3/9372:	29C2    	AND #$C2       ; Or Petrify?
C3/9374:	D0E4    	BNE $935A      ; Fail if any
C3/9376:	20352C  	JSR $2C35      ; At full HP?
C3/9379:	90F2    	BCC $936D      ; Succeed if not
C3/937B:	20572C  	JSR $2C57      ; At full MP?
C3/937E:	90ED    	BCC $936D      ; Succeed if not
C3/9380:	80D8    	BRA $935A      ; Make item fail

Fork: Megalixir (unused)
C3/9382:	7B      	TDC            ; Clear A
C3/9383:	AA      	TAX            ; Member index: 0
C3/9384:	86ED    	STX $ED        ; Memorize index
C3/9386:	BC6D00  	LDY $006D,X    ; Actor's address
C3/9389:	F005    	BEQ $9390      ; Skip if nobody
C3/938B:	206F93  	JSR $936F      ; Run Elixir test
C3/938E:	B0DD    	BCS $936D      ; Heal if passed
C3/9390:	A6ED    	LDX $ED        ; Member index
C3/9392:	E8      	INX            ; Member index +1
C3/9393:	E8      	INX            ; Member index +1
C3/9394:	E00800  	CPX #$0008     ; Done 4 members?
C3/9397:	D0EB    	BNE $9384      ; Loop if not
C3/9399:	80BF    	BRA $935A      ; Make item fail

Fork: Sleeping Bag (B)
C3/939B:	B91400  	LDA $0014,Y    ; Dark/Zom/Pois?
C3/939E:	29F7    	AND #$F7       ; Clear/Imp/Pet/KO?
C3/93A0:	D0CB    	BNE $936D      ; Succeed if any
C3/93A2:	B91500  	LDA $0015,Y    ; Status HB
C3/93A5:	2980    	AND #$80       ; Float?
C3/93A7:	D0C4    	BNE $936D      ; Succeed if so
C3/93A9:	20352C  	JSR $2C35      ; At full HP?
C3/93AC:	90BF    	BCC $936D      ; Succeed if not
C3/93AE:	20572C  	JSR $2C57      ; At full MP?
C3/93B1:	90BA    	BCC $936D      ; Succeed if not
C3/93B3:	80A5    	BRA $935A      ; Make item fail

Get selected recovery item
C3/93B5:	7B      	TDC            ; Clear A
C3/93B6:	A528    	LDA $28        ; Inventory slot
C3/93B8:	AA      	TAX            ; Index it
C3/93B9:	BD6918  	LDA $1869,X    ; Item in slot
C3/93BC:	60      	RTS

Handle HP and MP recovery from item
C3/93BD:	5A      	PHY            ; ...
C3/93BE:	20B593  	JSR $93B5      ; Item
C3/93C1:	20A28A  	JSR $8AA2      ; Compute index
C3/93C4:	7A      	PLY            ; ...
C3/93C5:	AE3421  	LDX $2134      ; Load it
C3/93C8:	86B0    	STX $B0        ; Memorize it
C3/93CA:	205794  	JSR $9457      ; Load item power
C3/93CD:	BF1350D8	LDA $D85013,X  ; Fixed healing?
C3/93D1:	302D    	BMI $9400      ; Branch if not
C3/93D3:	2908    	AND #$08       ; Affects HP?
C3/93D5:	F00F    	BEQ $93E6      ; Branch if not

Fork: Fixed HP healing
C3/93D7:	C221    	REP #$21       ; 16-bit A; C-
C3/93D9:	A5B2    	LDA $B2        ; Item's power
C3/93DB:	790900  	ADC $0009,Y    ; Add target's HP
C3/93DE:	990900  	STA $0009,Y    ; Set target's HP
C3/93E1:	E220    	SEP #$20       ; 8-bit A
C3/93E3:	20352C  	JSR $2C35      ; Enforce max HP

Fork: Fixed MP healing
C3/93E6:	A6B0    	LDX $B0        ; Item index
C3/93E8:	BF1350D8	LDA $D85013,X  ; Properties
C3/93EC:	2910    	AND #$10       ; Affects MP?
C3/93EE:	F00F    	BEQ $93FF      ; Exit if not
C3/93F0:	C221    	REP #$21       ; 16-bit A; C-
C3/93F2:	A5B2    	LDA $B2        ; Item's power
C3/93F4:	790D00  	ADC $000D,Y    ; Add target's MP
C3/93F7:	990D00  	STA $000D,Y    ; Set target's MP
C3/93FA:	E220    	SEP #$20       ; 8-bit A
C3/93FC:	20572C  	JSR $2C57      ; Enforce max MP
C3/93FF:	60      	RTS

Fork: Fractional HP healing
C3/9400:	BF1350D8	LDA $D85013,X  ; Properties
C3/9404:	2908    	AND #$08       ; Affects HP?
C3/9406:	F022    	BEQ $942A      ; Branch if not
C3/9408:	B90B00  	LDA $000B,Y    ; Max HP LB
C3/940B:	85F3    	STA $F3        ; Memorize it
C3/940D:	B90C00  	LDA $000C,Y    ; Max HP HB
C3/9410:	85F4    	STA $F4        ; Memorize it
C3/9412:	20D00D  	JSR $0DD0      ; Add gear bonus
C3/9415:	20FD0D  	JSR $0DFD      ; Cap at 9999
C3/9418:	206094  	JSR $9460      ; Max HP x Pwr/16
C3/941B:	C221    	REP #$21       ; 16-bit A; C-
C3/941D:	A5E9    	LDA $E9        ; Product
C3/941F:	790900  	ADC $0009,Y    ; Add target's HP
C3/9422:	990900  	STA $0009,Y    ; Set target's HP
C3/9425:	E220    	SEP #$20       ; 8-bit A
C3/9427:	20352C  	JSR $2C35      ; Enforce max HP

Fork: Fractional MP healing
C3/942A:	A6B0    	LDX $B0        ; Item index
C3/942C:	BF1350D8	LDA $D85013,X  ; Properties
C3/9430:	2910    	AND #$10       ; Affects MP?
C3/9432:	F022    	BEQ $9456      ; Exit if not
C3/9434:	B90F00  	LDA $000F,Y    ; Max MP LB
C3/9437:	85F3    	STA $F3        ; Memorize it
C3/9439:	B91000  	LDA $0010,Y    ; Max MP HB
C3/943C:	85F4    	STA $F4        ; Memorize it
C3/943E:	20D00D  	JSR $0DD0      ; Add gear bonus
C3/9441:	200A0E  	JSR $0E0A      ; Cap at 999
C3/9444:	206094  	JSR $9460      ; Max MP x Pwr/16
C3/9447:	C221    	REP #$21       ; 16-bit A; C-
C3/9449:	A5E9    	LDA $E9        ; Product
C3/944B:	790D00  	ADC $000D,Y    ; Add target's MP
C3/944E:	990D00  	STA $000D,Y    ; Set target's MP
C3/9451:	E220    	SEP #$20       ; 8-bit A
C3/9453:	20572C  	JSR $2C57      ; Enforce max MP
C3/9456:	60      	RTS

Load recovery item's power
C3/9457:	BF1450D8	LDA $D85014,X  ; Item's power
C3/945B:	85B2    	STA $B2        ; Memorize it
C3/945D:	64B3    	STZ $B3        ; Clear HB
C3/945F:	60      	RTS

Multiply max HP or MP by item's power, divide by 16
C3/9460:	AD1242  	LDA $4212      ; PPU status
C3/9463:	2940    	AND #$40       ; H-Blank?
C3/9465:	F0F9    	BEQ $9460      ; Loop if not
C3/9467:	A5F3    	LDA $F3        ; Max HP/MP LB
C3/9469:	8D1B21  	STA $211B      ; Set matrix A LB
C3/946C:	A5F4    	LDA $F4        ; Max HP/MP HB
C3/946E:	8D1B21  	STA $211B      ; Set matrix A HB
C3/9471:	A5B2    	LDA $B2        ; Item's power
C3/9473:	8D1C21  	STA $211C      ; Set matrix B
C3/9476:	8D1C21  	STA $211C      ; ...
C3/9479:	AD3621  	LDA $2136      ; Product HB
C3/947C:	85EB    	STA $EB        ; Set gain B3
C3/947E:	64EC    	STZ $EC        ; Clear byte 4
C3/9480:	C220    	REP #$20       ; 16-bit A
C3/9482:	AD3421  	LDA $2134      ; Product LBs
C3/9485:	85E9    	STA $E9        ; Set gain LBs
C3/9487:	46EB    	LSR $EB        ; Halve HBs
C3/9489:	66E9    	ROR $E9        ; Halve LBs w/ C
C3/948B:	46EB    	LSR $EB        ; Halve HBs
C3/948D:	66E9    	ROR $E9        ; Halve LBs w/ C
C3/948F:	46EB    	LSR $EB        ; Halve HBs
C3/9491:	66E9    	ROR $E9        ; Halve LBs w/ C
C3/9493:	46EB    	LSR $EB        ; Halve HBs
C3/9495:	66E9    	ROR $E9        ; Halve LBs w/ C
C3/9497:	E220    	SEP #$20       ; 8-bit A
C3/9499:	60      	RTS

Text pointers for Item menu
C3/949A:	A794    	; USE
C3/949C:	AD94    	; ARRANGE
C3/949E:	B494    	; RARE

Positioned text for Item menu
C3/94A0:	CD78 8A8C84A000                ; Item
C3/94A7:	DD78 836B8900                  ; USE
C3/94AD:	E978 7B8D87B900                ; ARRANGE
C3/94B4:	F778 3F8D3793A59B00            ; RARE

Text for gear data menu, " can be used by:"
C3/94BD:	BBFF7D8923456DAB6CBEA66E7EC500

Text pointers for gear data menu
C3/94CC:	FE94    	; Vigor
C3/94CE:	0495    	; Stamina
C3/94D0:	0C95    	; Mag.Pwr
C3/94D2:	1395    	; Evade %
C3/94D4:	1B95    	; MBlock%
C3/94D6:	2695    	; ..
C3/94D8:	2A95    	; ..
C3/94DA:	2E95    	; ..
C3/94DC:	3295    	; ..
C3/94DE:	3695    	; ..
C3/94E0:	3A95    	; ..
C3/94E2:	3E95    	; ..
C3/94E4:	4295    	; ..
C3/94E6:	4695    	; ..
C3/94E8:	4A95    	; Speed
C3/94EA:	5195    	; Bat.Pwr
C3/94EC:	5B95    	; Defense
C3/94EE:	6295    	; Mag.Def
C3/94F0:	6C95    	; 50% Dmg
C3/94F2:	7395    	; Absorb HP
C3/94F4:	7C95    	; No Effect
C3/94F6:	8295    	; Weak pt

Positioned text for gear data menu
C3/94F8:	4386 CBCBCB00                  ; ???
C3/94FE:	2F84 816BA700                  ; Vigor
C3/9504:	2F85 7F8DA9C36F00              ; Stamina
C3/950C:	AF85 9DA9C36F00                ; Mag.Pwr
C3/9513:	2F87 6B8D63A98300              ; Evade %
C3/951B:	2F88 9D69896B8D63A98300        ; MBlock%
C3/9526:	3F84 C700                      ; ..
C3/952A:	BF84 C700                      ; ..
C3/952E:	3F85 C700                      ; ..
C3/9532:	BF85 C700                      ; ..
C3/9536:	3F86 C700                      ; ..
C3/953A:	BF86 C700                      ; ..
C3/953E:	3F87 C700                      ; ..
C3/9542:	BF87 C700                      ; ..
C3/9546:	3F88 C700                      ; ..
C3/954A:	6F84 7921B17500                ; Speed
C3/9551:	EF85 7389316DA9C36F00          ; Bat.Pwr
C3/955B:	6F86 29892DC300                ; Defense
C3/9562:	6F87 9D698929892DC300          ; Mag.Def
C3/956C:	4D7B 61B931B900                ; 50% Dmg
C3/9573:	697B 6DC18977C18900            ; Absorb HP
C3/957C:	4D7C A1738900                  ; No Effect
C3/9582:	697C 37BF6F85B900              ; Weak pt
C3/958A:	4D7B 7389316D00                ; Attack
C3/9591:	2F82 63BD758371B9FF2E2A00      ; SwdTech
C3/959D:	AF82 9D658971B9FFFF2E2A00      ; Runic
C3/95A9:	2F83 A9C38985A581FF2E2A00      ; 2-hand

Positioned text for item usage menu, "Owned:"
C3/95B5:	CD79 A5BD858DAB6B3900

Positioned spaces for blanking item count in Item menu
C3/95BF:	BF7A FFFFFF00

Load navigation data for Equip menu options
C3/95C5:	A0D495  	LDY #$95D4     ; C3/95D4
C3/95C8:	4C8106  	JMP $0681      ; Load navig data

Handle D-Pad for Equip menu options
C3/95CB:	20B007  	JSR $07B0      ; Handle D-Pad
C3/95CE:	A0D995  	LDY #$95D9     ; C3/95D9
C3/95D1:	4CC306  	JMP $06C3      ; Relocate cursor

Navigation data for Equip menu options
C3/95D4:	01      	; Wraps horizontally
C3/95D5:	00      	; Initial column
C3/95D6:	00      	; Initial row
C3/95D7:	04      	; 4 columns
C3/95D8:	01      	; 1 row

Cursor positions for Equip menu options
C3/95D9:	1010    	; EQUIP
C3/95DB:	3810    	; OPTIMUM
C3/95DD:	7010    	; RMOVE
C3/95DF:	A010    	; EMPTY

Load navigation data for Equip menu slot selection
C3/95E1:	A0F095  	LDY #$95F0     ; C3/95F0
C3/95E4:	4C8106  	JMP $0681      ; Load navig data

Handle D-Pad for Equip menu slot selection
C3/95E7:	20B007  	JSR $07B0      ; Handle D-Pad
C3/95EA:	A0F595  	LDY #$95F5     ; C3/95F5
C3/95ED:	4CC306  	JMP $06C3      ; Relocate cursor

Navigation data for Equip menu slot selection
C3/95F0:	80      	; Wraps vertically
C3/95F1:	00      	; Initial column
C3/95F2:	00      	; Initial row
C3/95F3:	01      	; 1 column
C3/95F4:	04      	; 4 rows

Cursor positions for Equip menu slot selection
C3/95F5:	382C    	; R-Hand
C3/95F7:	3838    	; L-Hand
C3/95F9:	3844    	; Head
C3/95FB:	3850    	; Body

Load navigation data for equipment browsing
C3/95FD:	A01B96  	LDY #$961B     ; C3/961B
C3/9600:	4C8106  	JMP $0681      ; Load navig data

Handle D-Pad for equipment browsing (over 9 items)
C3/9603:	204889  	JSR $8948      ; Handle D-Pad
C3/9606:	A02096  	LDY #$9620     ; C3/9620
C3/9609:	4CCB06  	JMP $06CB      ; Relocate cursor

Load navigation data for equipment browsing
C3/960C:	A01B96  	LDY #$961B     ; C3/961B
C3/960F:	4C8106  	JMP $0681      ; Load navig data

Handle D-Pad for equipment browsing (9 items or less)
C3/9612:	20B007  	JSR $07B0      ; Handle D-Pad
C3/9615:	A02096  	LDY #$9620     ; C3/9620
C3/9618:	4CC306  	JMP $06C3      ; Relocate cursor

Navigation data for equipment list
C3/961B:	81      	; Never wraps
C3/961C:	00      	; Initial column
C3/961D:	00      	; Initial row
C3/961E:	01      	; 1 column
C3/961F:	09      	; 9 rows

Cursor positions for equipment list
C3/9620:	0068    	; Item 1
C3/9622:	0074    	; Item 2
C3/9624:	0080    	; Item 3
C3/9626:	008C    	; Item 4
C3/9628:	0098    	; Item 5
C3/962A:	00A4    	; Item 6
C3/962C:	00B0    	; Item 7
C3/962E:	00BC    	; Item 8
C3/9630:	00C8    	; Item 9

Load navigation data for Relic menu options
C3/9632:	A04196  	LDY #$9641     ; C3/9641
C3/9635:	4C8106  	JMP $0681      ; Load navig data

Handle D-Pad for Relic menu options
C3/9638:	20B007  	JSR $07B0      ; Handle D-Pad
C3/963B:	A04696  	LDY #$9646     ; C3/9646
C3/963E:	4CC306  	JMP $06C3      ; Relocate cursor

Navigation data for Relic menu options
C3/9641:	01      	; Wraps horizontally
C3/9642:	00      	; Initial column
C3/9643:	00      	; Initial row
C3/9644:	02      	; 2 columns
C3/9645:	01      	; 1 row

Cursor positions for Relic menu options
C3/9646:	1010    	; Equip
C3/9648:	3810    	; Remove

Load navigation data for relic slot selection
C3/964A:	A05996  	LDY #$9659     ; C3/9659
C3/964D:	4C8106  	JMP $0681      ; Load navig data

Handle D-Pad for relic slot selection
C3/9650:	20B007  	JSR $07B0      ; Handle D-Pad
C3/9653:	A05E96  	LDY #$965E     ; C3/965E
C3/9656:	4CC306  	JMP $06C3      ; Relocate cursor

Navigation data for relic slot selection
C3/9659:	80      	; Wraps vertically
C3/965A:	00      	; Initial column
C3/965B:	00      	; Initial row
C3/965C:	01      	; 1 column
C3/965D:	02      	; 2 rows

Cursor positions for relic slots
C3/965E:	3844    	; Relic 1
C3/9660:	3850    	; Relic 2

Draw party gear overview
C3/9662:	A902    	LDA #$02       ; 32x64 at $0000
C3/9664:	8D0721  	STA $2107      ; Set BG1 map loc
C3/9667:	20BC71  	JSR $71BC      ; Clear BG2 map A
C3/966A:	A0D797  	LDY #$97D7     ; C3/97D7
C3/966D:	20C403  	JSR $03C4      ; Draw window
C3/9670:	20BD0E  	JSR $0EBD      ; Upload window
C3/9673:	20A971  	JSR $71A9      ; Clear BG1 map A
C3/9676:	20AD71  	JSR $71AD      ; Clear BG1 map B
C3/9679:	209196  	JSR $9691      ; Handle member 1
C3/967C:	20B896  	JSR $96B8      ; Handle member 2
C3/967F:	20E196  	JSR $96E1      ; Handle member 3
C3/9682:	200A97  	JSR $970A      ; Handle member 4
C3/9685:	20930E  	JSR $0E93      ; Upload BG1 A+B
C3/9688:	20A10E  	JSR $0EA1      ; Upload BG1 C...
C3/968B:	20D071  	JSR $71D0      ; Clear BG3 map A
C3/968E:	4CD90E  	JMP $0ED9      ; Upload BG3 A+B

Draw text in party gear overview for member 1
C3/9691:	A569    	LDA $69        ; Nobody here?
C3/9693:	3022    	BMI $96B7      ; Exit if so
C3/9695:	A924    	LDA #$24       ; Palette 1
C3/9697:	8529    	STA $29        ; Color: Blue
C3/9699:	A2F8A9  	LDX #$A9F8     ; Text ptrs loc
C3/969C:	A00C00  	LDY #$000C     ; Strings: 6
C3/969F:	204E71  	JSR $714E      ; Draw body parts
C3/96A2:	A66D    	LDX $6D        ; Actor's address
C3/96A4:	8667    	STX $67        ; Memorize it
C3/96A6:	A920    	LDA #$20       ; Palette 0
C3/96A8:	8529    	STA $29        ; Color: User's
C3/96AA:	A0CD38  	LDY #$38CD     ; Text position
C3/96AD:	206A35  	JSR $356A      ; Draw actor name
C3/96B0:	6428    	STZ $28        ; Member slot: 1
C3/96B2:	A904    	LDA #$04       ; Base Y: 4
C3/96B4:	203397  	JSR $9733      ; Draw equipment
C3/96B7:	60      	RTS

Draw text in party gear overview for member 2
C3/96B8:	A56A    	LDA $6A        ; Nobody here?
C3/96BA:	3024    	BMI $96E0      ; Exit if so
C3/96BC:	A924    	LDA #$24       ; Palette 1
C3/96BE:	8529    	STA $29        ; Color: Blue
C3/96C0:	A204AA  	LDX #$AA04     ; Text ptrs loc
C3/96C3:	A00C00  	LDY #$000C     ; Strings: 6
C3/96C6:	204E71  	JSR $714E      ; Draw body parts
C3/96C9:	A66F    	LDX $6F        ; Actor's address
C3/96CB:	8667    	STX $67        ; Memorize it
C3/96CD:	A920    	LDA #$20       ; Palette 0
C3/96CF:	8529    	STA $29        ; Color: User's
C3/96D1:	A0CD3A  	LDY #$3ACD     ; Text position
C3/96D4:	206A35  	JSR $356A      ; Draw actor name
C3/96D7:	A901    	LDA #$01       ; Member: 2
C3/96D9:	8528    	STA $28        ; Set member slot
C3/96DB:	A90C    	LDA #$0C       ; Base Y: 12
C3/96DD:	203397  	JSR $9733      ; Draw equipment
C3/96E0:	60      	RTS

Draw text in party gear overview for member 3
C3/96E1:	A56B    	LDA $6B        ; Nobody here?
C3/96E3:	3024    	BMI $9709      ; Exit if so
C3/96E5:	A924    	LDA #$24       ; Palette 1
C3/96E7:	8529    	STA $29        ; Color: Blue
C3/96E9:	A210AA  	LDX #$AA10     ; Text ptrs loc
C3/96EC:	A00C00  	LDY #$000C     ; Strings: 6
C3/96EF:	204E71  	JSR $714E      ; Draw body parts
C3/96F2:	A671    	LDX $71        ; Actor's address
C3/96F4:	8667    	STX $67        ; Memorize it
C3/96F6:	A920    	LDA #$20       ; Palette 0
C3/96F8:	8529    	STA $29        ; Color: User's
C3/96FA:	A0CD3C  	LDY #$3CCD     ; Text position
C3/96FD:	206A35  	JSR $356A      ; Draw actor name
C3/9700:	A902    	LDA #$02       ; Member: 3
C3/9702:	8528    	STA $28        ; Set member slot
C3/9704:	A914    	LDA #$14       ; Base Y: 20
C3/9706:	203397  	JSR $9733      ; Draw equipment
C3/9709:	60      	RTS

Draw text in party gear overview for member 4
C3/970A:	A56C    	LDA $6C        ; Nobody here?
C3/970C:	3024    	BMI $9732      ; Exit if so
C3/970E:	A924    	LDA #$24       ; Palette 1
C3/9710:	8529    	STA $29        ; Color: Blue
C3/9712:	A21CAA  	LDX #$AA1C     ; Text ptrs loc
C3/9715:	A00C00  	LDY #$000C     ; Strings: 6
C3/9718:	204E71  	JSR $714E      ; Draw body parts
C3/971B:	A673    	LDX $73        ; Actor's address
C3/971D:	8667    	STX $67        ; Memorize it
C3/971F:	A920    	LDA #$20       ; Palette 0
C3/9721:	8529    	STA $29        ; Color: User's
C3/9723:	A0CD3E  	LDY #$3ECD     ; Text position
C3/9726:	206A35  	JSR $356A      ; Draw actor name
C3/9729:	A903    	LDA #$03       ; Member: 4
C3/972B:	8528    	STA $28        ; Set member slot
C3/972D:	A91C    	LDA #$1C       ; Base Y: 28
C3/972F:	203397  	JSR $9733      ; Draw equipment
C3/9732:	60      	RTS

Draw member's gear in party gear overview
C3/9733:	85E2    	STA $E2        ; Set base Y
C3/9735:	64E0    	STZ $E0        ; ...
C3/9737:	A467    	LDY $67        ; Actor's address
C3/9739:	7B      	TDC            ; Clear A
C3/973A:	AA      	TAX            ; 1st: R-Hand
C3/973B:	DA      	PHX            ; Push gear slot
C3/973C:	5A      	PHY            ; Push actor adr
C3/973D:	5A      	PHY            ; Push actor adr
C3/973E:	DA      	PHX            ; Push gear slot
C3/973F:	64E5    	STZ $E5        ; X-Pos HB: 0
C3/9741:	BF7E97C3	LDA $C3977E,X  ; X position
C3/9745:	85E4    	STA $E4        ; Memorize it
C3/9747:	BF8497C3	LDA $C39784,X  ; Relative Y
C3/974B:	18      	CLC            ; Prepare ADC
C3/974C:	65E2    	ADC $E2        ; Add base Y
C3/974E:	A6E4    	LDX $E4        ; X position
C3/9750:	202088  	JSR $8820      ; Compute map ptr
C3/9753:	C220    	REP #$20       ; 16-bit A
C3/9755:	8A      	TXA            ; ...
C3/9756:	8F899E7E	STA $7E9E89    ; Set position
C3/975A:	E220    	SEP #$20       ; 8-bit A
C3/975C:	FA      	PLX            ; Gear slot
C3/975D:	E00200  	CPX #$0002     ; Either hand?
C3/9760:	B005    	BCS $9767      ; Branch if not
C3/9762:	200C9C  	JSR $9C0C      ; Test "Empty"
C3/9765:	8002    	BRA $9769      ; Skip a line
C3/9767:	64E0    	STZ $E0        ; Forbid "Empty"
C3/9769:	7A      	PLY            ; Actor's address
C3/976A:	7B      	TDC            ; ...
C3/976B:	B91F00  	LDA $001F,Y    ; Item in slot
C3/976E:	208A97  	JSR $978A      ; Load name
C3/9771:	20B987  	JSR $87B9      ; Draw name
C3/9774:	7A      	PLY            ; Actor's address
C3/9775:	C8      	INY            ; Reach next slot
C3/9776:	FA      	PLX            ; Gear slot
C3/9777:	E8      	INX            ; Point to next
C3/9778:	E00600  	CPX #$0006     ; Done 6 slots?
C3/977B:	D0BE    	BNE $973B      ; Loop if not
C3/977D:	60      	RTS

X positions for party gear overview
C3/977E:	07      	; R-Hand
C3/977F:	15      	; L-Hand
C3/9780:	07      	; Head
C3/9781:	15      	; Body
C3/9782:	07      	; Relic 1
C3/9783:	15      	; Relic 2

Relative Y positions for party gear overview
C3/9784:	00      	; R-Hand
C3/9785:	00      	; L-Hand
C3/9786:	02      	; Head
C3/9787:	02      	; Body
C3/9788:	04      	; Relic 1
C3/9789:	04      	; Relic 2

Load equipped item's name
C3/978A:	48      	PHA            ; Save item
C3/978B:	A28B9E  	LDX #$9E8B     ; 7E/9E8B
C3/978E:	8E8121  	STX $2181      ; Set WRAM LBs
C3/9791:	AD1242  	LDA $4212      ; PPU status
C3/9794:	2940    	AND #$40       ; H-Blank?
C3/9796:	F0F9    	BEQ $9791      ; Loop if not
C3/9798:	7B      	TDC            ; Clear A
C3/9799:	A5E0    	LDA $E0        ; Allow "Empty"?
C3/979B:	F003    	BEQ $97A0      ; Branch if not
C3/979D:	68      	PLA            ; Item
C3/979E:	8005    	BRA $97A5      ; Skip next check
C3/97A0:	68      	PLA            ; Item
C3/97A1:	C9FF    	CMP #$FF       ; None?
C3/97A3:	F023    	BEQ $97C8      ; Blank if so
C3/97A5:	8D1B21  	STA $211B      ; Set matrix A LB
C3/97A8:	9C1B21  	STZ $211B      ; Clear HB
C3/97AB:	A909    	LDA #$09       ; Name data size
C3/97AD:	8D1C21  	STA $211C      ; Set matrix B
C3/97B0:	8D1C21  	STA $211C      ; ...
C3/97B3:	AE3421  	LDX $2134      ; Index product
C3/97B6:	A00900  	LDY #$0009     ; Letters: 9
C3/97B9:	BF00F7E6	LDA $E6F700,X  ; Letter
C3/97BD:	8D8021  	STA $2180      ; Add to string
C3/97C0:	E8      	INX            ; Point to next
C3/97C1:	88      	DEY            ; One less left
C3/97C2:	D0F5    	BNE $97B9      ; Loop till last
C3/97C4:	9C8021  	STZ $2180      ; End string
C3/97C7:	60      	RTS

Fork: Blank item name
C3/97C8:	A00900  	LDY #$0009     ; Spaces: 9
C3/97CB:	A9FF    	LDA #$FF       ; Space char
C3/97CD:	8D8021  	STA $2180      ; Add to string
C3/97D0:	88      	DEY            ; One less left
C3/97D1:	D0FA    	BNE $97CD      ; Loop till last
C3/97D3:	9C8021  	STZ $2180      ; End string
C3/97D6:	60      	RTS

Window layout for party gear overview
C3/97D7:	8B581C18	; 30x26 at $588B

Draw Equip menu, create portrait, update status via gear
C3/97DB:	203C98  	JSR $983C      ; Do boxes; face
C3/97DE:	20C498  	JSR $98C4      ; Draw info; status
C3/97E1:	A92C    	LDA #$2C       ; Palette 3
C3/97E3:	8529    	STA $29        ; Color: Blue
C3/97E5:	A2BCAA  	LDX #$AABC     ; Text ptrs loc
C3/97E8:	A00400  	LDY #$0004     ; Strings: 2
C3/97EB:	204E71  	JSR $714E      ; Draw Head, Body
C3/97EE:	20F797  	JSR $97F7      ; Draw top options
C3/97F1:	20D90E  	JSR $0ED9      ; Upload BG3 A+B
C3/97F4:	4C1DA6  	JMP $A61D      ; Queue text upload

Draw options in Equip menu
C3/97F7:	A920    	LDA #$20       ; Palette 0
C3/97F9:	8529    	STA $29        ; Color: User's
C3/97FB:	A2B4AA  	LDX #$AAB4     ; Text ptrs loc
C3/97FE:	A00800  	LDY #$0008     ; Strings: 4
C3/9801:	204E71  	JSR $714E      ; Draw text
C3/9804:	60      	RTS

Draw options in Relic menu
C3/9805:	A920    	LDA #$20       ; Palette 0
C3/9807:	8529    	STA $29        ; Color: User's
C3/9809:	A2C0AA  	LDX #$AAC0     ; Text ptrs loc
C3/980C:	A00400  	LDY #$0004     ; Strings: 2
C3/980F:	204E71  	JSR $714E      ; Draw text
C3/9812:	60      	RTS

Draw Relic menu, memorize original relics, create portrait
C3/9813:	203C98  	JSR $983C      ; Do boxes; face
C3/9816:	20E19B  	JSR $9BE1      ; Define Y
C3/9819:	B92300  	LDA $0023,Y    ; Relic 1
C3/981C:	85B0    	STA $B0        ; Save for Reequip
C3/981E:	B92400  	LDA $0024,Y    ; Relic 2
C3/9821:	85B1    	STA $B1        ; Save for Reequip
C3/9823:	20DA98  	JSR $98DA      ; Draw info; status
C3/9826:	A92C    	LDA #$2C       ; Palette 3
C3/9828:	8529    	STA $29        ; Color: Blue
C3/982A:	A2C4AA  	LDX #$AAC4     ; Text ptrs loc
C3/982D:	A00400  	LDY #$0004     ; Strings: 2
C3/9830:	204E71  	JSR $714E      ; Draw 2x "Relic"
C3/9833:	200598  	JSR $9805      ; Draw menu options
C3/9836:	20EEAF  	JSR $AFEE      ; Build desc map
C3/9839:	4CD90E  	JMP $0ED9      ; Upload BG3 A+B

Draw elements shared by Equip and Relic menus, create portrait
C3/983C:	20B998  	JSR $98B9      ; Load actor stats
C3/983F:	C220    	REP #$20       ; 16-bit A
C3/9841:	A90001  	LDA #$0100     ; BG1 H-Shift: 256
C3/9844:	8FD09B7E	STA $7E9BD0    ; Hide gear list
C3/9848:	E220    	SEP #$20       ; 8-bit A
C3/984A:	A901    	LDA #$01       ; 64x32 at $0000
C3/984C:	8D0721  	STA $2107      ; Set BG1 map loc
C3/984F:	A942    	LDA #$42       ; 32x64 at $4000
C3/9851:	8D0921  	STA $2109      ; Set BG3 map loc
C3/9854:	20FB9D  	JSR $9DFB      ; Reset BG2 X-Pos
C3/9857:	20BC71  	JSR $71BC      ; Clear BG2 map A
C3/985A:	20C171  	JSR $71C1      ; Clear BG2 map B
C3/985D:	A06E9C  	LDY #$9C6E     ; C3/9C6E
C3/9860:	20C403  	JSR $03C4      ; Draw stats box A
C3/9863:	A0729C  	LDY #$9C72     ; C3/9C72
C3/9866:	20C403  	JSR $03C4      ; Draw gear box A
C3/9869:	A0769C  	LDY #$9C76     ; C3/9C76
C3/986C:	20C403  	JSR $03C4      ; Draw option box
C3/986F:	A07A9C  	LDY #$9C7A     ; C3/9C7A
C3/9872:	20C403  	JSR $03C4      ; Draw stats box B
C3/9875:	A07E9C  	LDY #$9C7E     ; C3/9C7E
C3/9878:	20C403  	JSR $03C4      ; Draw gear box B
C3/987B:	A0829C  	LDY #$9C82     ; C3/9C82
C3/987E:	20C403  	JSR $03C4      ; Draw title box
C3/9881:	20BD0E  	JSR $0EBD      ; Upload windows
C3/9884:	20A971  	JSR $71A9      ; Clear BG1 map A
C3/9887:	20AD71  	JSR $71AD      ; Clear BG1 map B
C3/988A:	20930E  	JSR $0E93      ; Upload BG1 A+B
C3/988D:	20A10E  	JSR $0EA1      ; Upload BG1 C...
C3/9890:	20D071  	JSR $71D0      ; Clear BG3 map A
C3/9893:	20D571  	JSR $71D5      ; Clear BG3 map B
C3/9896:	20CE9B  	JSR $9BCE      ; Draw actor name
C3/9899:	200868  	JSR $6808      ; Create portrait
C3/989C:	A92C    	LDA #$2C       ; Palette 3
C3/989E:	8529    	STA $29        ; Color: Blue
C3/98A0:	A244AB  	LDX #$AB44     ; Text ptrs loc
C3/98A3:	A01C00  	LDY #$001C     ; Strings: 14
C3/98A6:	202C71  	JSR $712C      ; Draw Vigor, etc.
C3/98A9:	A92C    	LDA #$2C       ; ...
C3/98AB:	8529    	STA $29        ; ...
C3/98AD:	A260AB  	LDX #$AB60     ; Text ptrs loc
C3/98B0:	A00800  	LDY #$0008     ; Strings: 4
C3/98B3:	204E71  	JSR $714E      ; Draw Speed, etc.
C3/98B6:	4CD90E  	JMP $0ED9      ; Upload BG3 A+B

Load member's stats and properties with gear
C3/98B9:	7B      	TDC            ; Clear A
C3/98BA:	A528    	LDA $28        ; Member slot
C3/98BC:	AA      	TAX            ; Index it
C3/98BD:	B569    	LDA $69,X      ; Actor
C3/98BF:	220600C2	JSL $C20006    ; Load data
C3/98C3:	60      	RTS

Draw actor info in Equip menu, update status based on gear
C3/98C4:	2064A1  	JSR $A164      ; Draw hand names
C3/98C7:	A920    	LDA #$20       ; Palette 0
C3/98C9:	8529    	STA $29        ; Color: User's
C3/98CB:	20E798  	JSR $98E7      ; Do stats; status
C3/98CE:	20D699  	JSR $99D6      ; Draw relic FX
C3/98D1:	20EB9B  	JSR $9BEB      ; Draw arms
C3/98D4:	20249C  	JSR $9C24      ; Draw helmet
C3/98D7:	4C329C  	JMP $9C32      ; Draw armor

Draw actor info in Relic menu, update status based on gear
C3/98DA:	A920    	LDA #$20       ; Palette 0
C3/98DC:	8529    	STA $29        ; Color: User's
C3/98DE:	20E798  	JSR $98E7      ; Do stats; status
C3/98E1:	20409C  	JSR $9C40      ; Draw relic 1
C3/98E4:	4C4E9C  	JMP $9C4E      ; Draw relic 2

Draw current stats in gear menu, update status based on gear
C3/98E7:	20B998  	JSR $98B9      ; Load actor stats
C3/98EA:	20E19B  	JSR $9BE1      ; Actor's address
C3/98ED:	20D7A1  	JSR $A1D7      ; Set Bat.Pwr mode
C3/98F0:	20B099  	JSR $99B0      ; Relocate stats
C3/98F3:	8B      	PHB            ; Save DB
C3/98F4:	A97E    	LDA #$7E       ; Bank: 7E
C3/98F6:	48      	PHA            ; Put on stack
C3/98F7:	AB      	PLB            ; Set DB to 7E
C3/98F8:	206D99  	JSR $996D      ; Update status
C3/98FB:	AD0630  	LDA $3006      ; Vigor
C3/98FE:	206305  	JSR $0563      ; Turn into text
C3/9901:	A2B77C  	LDX #$7CB7     ; Text position
C3/9904:	204305  	JSR $0543      ; Draw 3 digits
C3/9907:	AD0430  	LDA $3004      ; Speed
C3/990A:	206305  	JSR $0563      ; Turn into text
C3/990D:	A2377D  	LDX #$7D37     ; Text position
C3/9910:	204305  	JSR $0543      ; Draw 3 digits
C3/9913:	AD0230  	LDA $3002      ; Stamina
C3/9916:	206305  	JSR $0563      ; Turn into text
C3/9919:	A2B77D  	LDX #$7DB7     ; Text position
C3/991C:	204305  	JSR $0543      ; Draw 3 digits
C3/991F:	AD0030  	LDA $3000      ; Mag.Pwr
C3/9922:	206305  	JSR $0563      ; Turn into text
C3/9925:	A2377E  	LDX #$7E37     ; Text position
C3/9928:	204305  	JSR $0543      ; Draw 3 digits
C3/992B:	20949B  	JSR $9B94      ; Define Bat.Pwr
C3/992E:	A6F1    	LDX $F1        ; Load it
C3/9930:	86F3    	STX $F3        ; Save for $05B1
C3/9932:	20B105  	JSR $05B1      ; Turn into text
C3/9935:	A2B77E  	LDX #$7EB7     ; Text position
C3/9938:	200905  	JSR $0509      ; Draw 3 digits
C3/993B:	AD1A30  	LDA $301A      ; Defense
C3/993E:	206305  	JSR $0563      ; Turn into text
C3/9941:	A2377F  	LDX #$7F37     ; Text position
C3/9944:	204305  	JSR $0543      ; Draw 3 digits
C3/9947:	AD0830  	LDA $3008      ; Evade
C3/994A:	206305  	JSR $0563      ; Turn into text
C3/994D:	A2B77F  	LDX #$7FB7     ; Text position
C3/9950:	204305  	JSR $0543      ; Draw 3 digits
C3/9953:	AD1B30  	LDA $301B      ; Mag.Def
C3/9956:	206305  	JSR $0563      ; Turn into text
C3/9959:	A23780  	LDX #$8037     ; Text position
C3/995C:	204305  	JSR $0543      ; Draw 3 digits
C3/995F:	AD0A30  	LDA $300A      ; MBlock
C3/9962:	206305  	JSR $0563      ; Turn into text
C3/9965:	A2B780  	LDX #$80B7     ; Text position
C3/9968:	204305  	JSR $0543      ; Draw 3 digits
C3/996B:	AB      	PLB            ; Restore DB
C3/996C:	60      	RTS

Update status based on gear (Rage denotes Auto Float)
C3/996D:	20E19B  	JSR $9BE1      ; Define Y
C3/9970:	AF32307E	LDA $7E3032    ; Gear immunity
C3/9974:	209599  	JSR $9995      ; Deny ailments
C3/9977:	AD3430  	LDA $3034      ; Gear auto status
C3/997A:	2901    	AND #$01       ; Float?
C3/997C:	D007    	BNE $9985      ; Branch if so
C3/997E:	B91500  	LDA $0015,Y    ; Actor's status
C3/9981:	2901    	AND #$01       ; Rage?
C3/9983:	F00F    	BEQ $9994      ; Exit if not
C3/9985:	AD3430  	LDA $3034      ; Gear auto status
C3/9988:	18      	CLC            ; Prepare ROR
C3/9989:	2901    	AND #$01       ; Get Float
C3/998B:	85E0    	STA $E0        ; Memorize it
C3/998D:	6A      	ROR A          ; Put in Carry
C3/998E:	6A      	ROR A          ; Put in bit 7
C3/998F:	05E0    	ORA $E0        ; Add Float as Rage
C3/9991:	991500  	STA $0015,Y    ; Set actor status
C3/9994:	60      	RTS

Cure ailments blocked by gear
C3/9995:	2925    	AND #$25       ; Dark, Poison, Imp
C3/9997:	49FF    	EOR #$FF       ; Toggle all bits
C3/9999:	85E1    	STA $E1        ; Save immunities
C3/999B:	B91400  	LDA $0014,Y    ; Actor's status
C3/999E:	25E1    	AND $E1        ; Lift immune ones
C3/99A0:	991400  	STA $0014,Y    ; Save changes
C3/99A3:	60      	RTS

Grant Float status if bestowed by gear
C3/99A4:	18      	CLC            ; Prepare ROR
C3/99A5:	2901    	AND #$01       ; Auto Float
C3/99A7:	6A      	ROR A          ; Put in Carry
C3/99A8:	6A      	ROR A          ; Put in bit 7
C3/99A9:	191500  	ORA $0015,Y    ; Add status
C3/99AC:	991500  	STA $0015,Y    ; Set status
C3/99AF:	60      	RTS

Load actor's info for Equip or Relic menu
C3/99B0:	A600    	LDX $00        ; 1st: Mag.Pwr
C3/99B2:	C220    	REP #$20       ; 16-bit A
C3/99B4:	BDA011  	LDA $11A0,X    ; Actor info
C3/99B7:	9F00307E	STA $7E3000,X  ; Set as current
C3/99BB:	E8      	INX            ; Index +1
C3/99BC:	E8      	INX            ; Index +1
C3/99BD:	BDA011  	LDA $11A0,X    ; Actor info
C3/99C0:	9F00307E	STA $7E3000,X  ; Set as current
C3/99C4:	E8      	INX            ; Index +1
C3/99C5:	E8      	INX            ; Index +1
C3/99C6:	E04000  	CPX #$0040     ; Done 64 bytes?
C3/99C9:	D0E9    	BNE $99B4      ; Loop if not
C3/99CB:	E220    	SEP #$20       ; 8-bit A
C3/99CD:	A5A1    	LDA $A1        ; 2-hand flag
C3/99CF:	85A0    	STA $A0        ; Set as current
C3/99D1:	A5CD    	LDA $CD        ; Genji G. flag
C3/99D3:	85CE    	STA $CE        ; Set as current
C3/99D5:	60      	RTS

Draw relic effects in Equip menu
C3/99D6:	A0D6AB  	LDY #$ABD6     ; Text pointer
C3/99D9:	202603  	JSR $0326      ; Blank effect A
C3/99DC:	A0DFAB  	LDY #$ABDF     ; Text pointer
C3/99DF:	202603  	JSR $0326      ; Blank effect B
C3/99E2:	ADD811  	LDA $11D8      ; Gear effects
C3/99E5:	2920    	AND #$20       ; Merit Award?
C3/99E7:	F009    	BEQ $99F2      ; Branch if not
C3/99E9:	20179A  	JSR $9A17      ; Color: Blue
C3/99EC:	A0E8AB  	LDY #$ABE8     ; Text pointer
C3/99EF:	202603  	JSR $0326      ; B: "Heavy gear"
C3/99F2:	ADD811  	LDA $11D8      ; Gear effects
C3/99F5:	2910    	AND #$10       ; Genji Glove?
C3/99F7:	F009    	BEQ $9A02      ; Branch if not
C3/99F9:	20179A  	JSR $9A17      ; Color: Blue
C3/99FC:	A0F1AB  	LDY #$ABF1     ; Text pointer
C3/99FF:	202603  	JSR $0326      ; A: "Dual wield"
C3/9A02:	ADD811  	LDA $11D8      ; Gear effects
C3/9A05:	2908    	AND #$08       ; Gauntlet?
C3/9A07:	F009    	BEQ $9A12      ; Exit if not
C3/9A09:	20179A  	JSR $9A17      ; Color: Blue
C3/9A0C:	A0FAAB  	LDY #$ABFA     ; Text pointer
C3/9A0F:	202603  	JSR $0326      ; B: "Two-handed"
C3/9A12:	A920    	LDA #$20       ; Palette 0
C3/9A14:	8529    	STA $29        ; Color: User's
C3/9A16:	60      	RTS            ; ^ For gear

Set text color to blue
C3/9A17:	A92C    	LDA #$2C       ; Palette 3
C3/9A19:	8529    	STA $29        ; Color: Blue
C3/9A1B:	60      	RTS

Draw projected stats in Equip or Relic menu
C3/9A1C:	AF899D7E	LDA $7E9D89    ; Empty item list?
C3/9A20:	F005    	BEQ $9A27      ; Abort if so
C3/9A22:	2031A2  	JSR $A231      ; On a gray item?
C3/9A25:	B003    	BCS $9A2A      ; Branch if not
C3/9A27:	4C76A4  	JMP $A476      ; Clear stats
C3/9A2A:	20E19B  	JSR $9BE1      ; Actor's address
C3/9A2D:	A525    	LDA $25        ; Submenu
C3/9A2F:	C902    	CMP #$02       ; Equip menu?
C3/9A31:	F004    	BEQ $9A37      ; Branch if so
C3/9A33:	C8      	INY            ; Point to L-Hand
C3/9A34:	C8      	INY            ; Point to head
C3/9A35:	C8      	INY            ; Point to body
C3/9A36:	C8      	INY            ; Point to relic 1
C3/9A37:	C221    	REP #$21       ; 16-bit A; C-
C3/9A39:	98      	TYA            ; Actor's address
C3/9A3A:	E220    	SEP #$20       ; 8-bit A
C3/9A3C:	655F    	ADC $5F        ; Add body slot
C3/9A3E:	A8      	TAY            ; Index sum
C3/9A3F:	7B      	TDC            ; Clear A
C3/9A40:	A54B    	LDA $4B        ; Gear list slot
C3/9A42:	AA      	TAX            ; Index it
C3/9A43:	BF8A9D7E	LDA $7E9D8A,X  ; Inventory slot
C3/9A47:	AA      	TAX            ; Index it
C3/9A48:	B91F00  	LDA $001F,Y    ; Equipped item
C3/9A4B:	8564    	STA $64        ; Preserve it
C3/9A4D:	BD6918  	LDA $1869,X    ; Inventory item
C3/9A50:	991F00  	STA $001F,Y    ; Put on actor
C3/9A53:	5A      	PHY            ; Save actor adr
C3/9A54:	20B998  	JSR $98B9      ; Load actor data
C3/9A57:	20E19B  	JSR $9BE1      ; Base actor adr
C3/9A5A:	20D7A1  	JSR $A1D7      ; Set Bat.Pwr mode
C3/9A5D:	20099B  	JSR $9B09      ; Set stat colors
C3/9A60:	ADA611  	LDA $11A6      ; New Vigor
C3/9A63:	206305  	JSR $0563      ; Turn into text
C3/9A66:	A2BF7C  	LDX #$7CBF     ; Text position
C3/9A69:	AF40307E	LDA $7E3040    ; Vigor palette
C3/9A6D:	8529    	STA $29        ; Set as current
C3/9A6F:	204305  	JSR $0543      ; Draw 3 digits
C3/9A72:	ADA411  	LDA $11A4      ; New Speed
C3/9A75:	206305  	JSR $0563      ; Turn into text
C3/9A78:	A23F7D  	LDX #$7D3F     ; Text position
C3/9A7B:	AF41307E	LDA $7E3041    ; Speed palette
C3/9A7F:	8529    	STA $29        ; Set as current
C3/9A81:	204305  	JSR $0543      ; Draw 3 digits
C3/9A84:	ADA211  	LDA $11A2      ; New Stamina
C3/9A87:	206305  	JSR $0563      ; Turn into text
C3/9A8A:	A2BF7D  	LDX #$7DBF     ; Text position
C3/9A8D:	AF42307E	LDA $7E3042    ; Stamina palette
C3/9A91:	8529    	STA $29        ; Set as current
C3/9A93:	204305  	JSR $0543      ; Draw 3 digits
C3/9A96:	ADA011  	LDA $11A0      ; New Mag.Pwr
C3/9A99:	206305  	JSR $0563      ; Turn into text
C3/9A9C:	A23F7E  	LDX #$7E3F     ; Text position
C3/9A9F:	AF43307E	LDA $7E3043    ; Mag.Pwr palette
C3/9AA3:	8529    	STA $29        ; Set as current
C3/9AA5:	204305  	JSR $0543      ; Draw 3 digits
C3/9AA8:	205A9B  	JSR $9B5A      ; Define Bat.Pwr
C3/9AAB:	20B105  	JSR $05B1      ; Turn into text
C3/9AAE:	A2BF7E  	LDX #$7EBF     ; Text position
C3/9AB1:	AF48307E	LDA $7E3048    ; Bat.Pwr palette
C3/9AB5:	8529    	STA $29        ; Set as current
C3/9AB7:	200905  	JSR $0509      ; Draw 3 digits
C3/9ABA:	ADBA11  	LDA $11BA      ; New Defense
C3/9ABD:	206305  	JSR $0563      ; Turn into text
C3/9AC0:	A23F7F  	LDX #$7F3F     ; Text position
C3/9AC3:	AF44307E	LDA $7E3044    ; Defense palette
C3/9AC7:	8529    	STA $29        ; Set as current
C3/9AC9:	204305  	JSR $0543      ; Draw 3 digits
C3/9ACC:	ADA811  	LDA $11A8      ; New Evade
C3/9ACF:	206305  	JSR $0563      ; Turn into text
C3/9AD2:	A2BF7F  	LDX #$7FBF     ; Text position
C3/9AD5:	AF45307E	LDA $7E3045    ; Evade palette
C3/9AD9:	8529    	STA $29        ; Set as current
C3/9ADB:	204305  	JSR $0543      ; Draw 3 digits
C3/9ADE:	ADBB11  	LDA $11BB      ; New Mag.Def
C3/9AE1:	206305  	JSR $0563      ; Turn into text
C3/9AE4:	A23F80  	LDX #$803F     ; Text position
C3/9AE7:	AF46307E	LDA $7E3046    ; Mag.Def palette
C3/9AEB:	8529    	STA $29        ; Set as current
C3/9AED:	204305  	JSR $0543      ; Draw 3 digits
C3/9AF0:	ADAA11  	LDA $11AA      ; New MBlock
C3/9AF3:	206305  	JSR $0563      ; Turn into text
C3/9AF6:	A2BF80  	LDX #$80BF     ; Text position
C3/9AF9:	AF47307E	LDA $7E3047    ; MBlock palette
C3/9AFD:	8529    	STA $29        ; Set as current
C3/9AFF:	204305  	JSR $0543      ; Draw 3 digits
C3/9B02:	7A      	PLY            ; Actor address
C3/9B03:	A564    	LDA $64        ; Original item
C3/9B05:	991F00  	STA $001F,Y    ; Restore gear
C3/9B08:	60      	RTS

Set color for each projected stat in Equip or Relic menu
C3/9B09:	8B      	PHB            ; Save DB
C3/9B0A:	A97E    	LDA #$7E       ; Bank: 7E
C3/9B0C:	48      	PHA            ; Put on stack
C3/9B0D:	AB      	PLB            ; Set DB to 7E
C3/9B0E:	7B      	TDC            ; Clear A
C3/9B0F:	AA      	TAX            ; Stat index: 0
C3/9B10:	BF529BC3	LDA $C39B52,X  ; Stat pointer
C3/9B14:	DA      	PHX            ; Save index
C3/9B15:	AA      	TAX            ; Index pointer
C3/9B16:	BFA01100	LDA $0011A0,X  ; Projected stat
C3/9B1A:	DD0030  	CMP $3000,X    ; Matches old?
C3/9B1D:	F006    	BEQ $9B25      ; Branch if so
C3/9B1F:	9008    	BCC $9B29      ; Gray if less
C3/9B21:	A928    	LDA #$28       ; Palette 2
C3/9B23:	8006    	BRA $9B2B      ; Color: Yellow

Fork: Use player's color
C3/9B25:	A920    	LDA #$20       ; Palette 0
C3/9B27:	8002    	BRA $9B2B      ; Skip a line

Fork: Gray out statistic
C3/9B29:	A924    	LDA #$24       ; Palette 1
C3/9B2B:	FA      	PLX            ; Stat index
C3/9B2C:	9D4030  	STA $3040,X    ; Set stat color
C3/9B2F:	E8      	INX            ; Stat index +1
C3/9B30:	E00800  	CPX #$0008     ; Done 8 stats?
C3/9B33:	D0DB    	BNE $9B10      ; Loop if not

Fork: Handle Bat.Pwr
C3/9B35:	205A9B  	JSR $9B5A      ; Set new Bat.Pwr
C3/9B38:	20949B  	JSR $9B94      ; Set old Bat.Pwr
C3/9B3B:	A4F3    	LDY $F3        ; New Bat.Pwr
C3/9B3D:	C4F1    	CPY $F1        ; Matches old?
C3/9B3F:	F006    	BEQ $9B47      ; Branch if so
C3/9B41:	9008    	BCC $9B4B      ; Gray if less
C3/9B43:	A928    	LDA #$28       ; Palette 2
C3/9B45:	8006    	BRA $9B4D      ; Font: Yellow

Fork: Use player's color for Bat.Pwr
C3/9B47:	A920    	LDA #$20       ; Palette 0
C3/9B49:	8002    	BRA $9B4D      ; Skip a line

Fork: Gray out Bat.Pwr
C3/9B4B:	A924    	LDA #$24       ; Palette 1
C3/9B4D:	8D4830  	STA $3048      ; Set BP color
C3/9B50:	AB      	PLB            ; Restore DB
C3/9B51:	60      	RTS

Ordered index list for loading stats
C3/9B52:	06      	; Vigor
C3/9B53:	04      	; Speed
C3/9B54:	02      	; Stamina
C3/9B55:	00      	; Mag.Pwr
C3/9B56:	1A      	; Defense
C3/9B57:	08      	; Evade
C3/9B58:	1B      	; Mag.Def
C3/9B59:	0A      	; MBlock

Define current (Status) or projected (Equip, Relic) Bat.Pwr
C3/9B5A:	A5A1    	LDA $A1        ; 2-hand mode?
C3/9B5C:	F016    	BEQ $9B74      ; Branch if not
C3/9B5E:	AFAC1100	LDA $0011AC    ; R-Hand's power
C3/9B62:	F006    	BEQ $9B6A      ; Branch if 0
C3/9B64:	8FAD1100	STA $0011AD    ; Set as L-Hand's
C3/9B68:	8019    	BRA $9B83      ; Combine hands

Fork: Two-handing L-Hand weapon
C3/9B6A:	AFAD1100	LDA $0011AD    ; L-Hand's power
C3/9B6E:	8FAC1100	STA $0011AC    ; Set as R-Hand's
C3/9B72:	800F    	BRA $9B83      ; Combine hands

Fork: Not two-handing a weapon
C3/9B74:	A5CD    	LDA $CD        ; Got Genji Glove?
C3/9B76:	D00B    	BNE $9B83      ; Branch if so
C3/9B78:	AFAC1100	LDA $0011AC    ; R-Hand's power
C3/9B7C:	F005    	BEQ $9B83      ; Branch if 0
C3/9B7E:	7B      	TDC            ; Bat.Pwr: 0
C3/9B7F:	8FAD1100	STA $0011AD    ; Set L-Hand's

Fork: Combine hands' Bat.Pwr
C3/9B83:	AFAC1100	LDA $0011AC    ; R-Hand's power
C3/9B87:	18      	CLC            ; Prepare ADC
C3/9B88:	6FAD1100	ADC $0011AD    ; Add L-Hand's
C3/9B8C:	85F3    	STA $F3        ; Set Bat.Pwr LB
C3/9B8E:	7B      	TDC            ; Zero A
C3/9B8F:	6900    	ADC #$00       ; +1 if overflow
C3/9B91:	85F4    	STA $F4        ; Set Bat.Pwr HB
C3/9B93:	60      	RTS

Define current Bat.Pwr for Equip or Relic menu
C3/9B94:	A5A0    	LDA $A0        ; 2-hand mode?
C3/9B96:	F016    	BEQ $9BAE      ; Branch if not
C3/9B98:	AF0C307E	LDA $7E300C    ; R-Hand's power
C3/9B9C:	F006    	BEQ $9BA4      ; Branch if 0
C3/9B9E:	8F0D307E	STA $7E300D    ; Set as L-Hand's
C3/9BA2:	8019    	BRA $9BBD      ; Combine hands

Fork: Two-handing L-Hand weapon
C3/9BA4:	AF0D307E	LDA $7E300D    ; L-Hand's power
C3/9BA8:	8F0C307E	STA $7E300C    ; Set as R-Hand's
C3/9BAC:	800F    	BRA $9BBD      ; Combine hands

Fork: Not two-handing a weapon
C3/9BAE:	A5CE    	LDA $CE        ; Got Genji Glove?
C3/9BB0:	D00B    	BNE $9BBD      ; Branch if so
C3/9BB2:	AF0C307E	LDA $7E300C    ; R-Hand's power
C3/9BB6:	F005    	BEQ $9BBD      ; Branch if 0
C3/9BB8:	7B      	TDC            ; Bat.Pwr: 0
C3/9BB9:	8F0D307E	STA $7E300D    ; Set L-Hand's

Fork: Combine hands' Bat.Pwr
C3/9BBD:	AF0C307E	LDA $7E300C    ; R-Hand's power
C3/9BC1:	18      	CLC            ; Prepare ADC
C3/9BC2:	6F0D307E	ADC $7E300D    ; Add L-Hand's
C3/9BC6:	85F1    	STA $F1        ; Set Bat.Pwr LB
C3/9BC8:	7B      	TDC            ; Zero A
C3/9BC9:	6900    	ADC #$00       ; +1 if overflow
C3/9BCB:	85F2    	STA $F2        ; Set Bat.Pwr HB
C3/9BCD:	60      	RTS

Draw actor name and class in Equip or Relic menu
C3/9BCE:	20E19B  	JSR $9BE1      ; Actor's address
C3/9BD1:	A920    	LDA #$20       ; Palette 0
C3/9BD3:	8529    	STA $29        ; Color: User's
C3/9BD5:	A0EF7A  	LDY #$7AEF     ; Text position
C3/9BD8:	206A35  	JSR $356A      ; Draw actor name
C3/9BDB:	A06F7B  	LDY #$7B6F     ; Text position
C3/9BDE:	4C8035  	JMP $3580      ; Draw actor class

Load member's SRAM block address
C3/9BE1:	7B      	TDC            ; Clear A
C3/9BE2:	A528    	LDA $28        ; Member slot
C3/9BE4:	0A      	ASL A          ; Double it
C3/9BE5:	AA      	TAX            ; Index it
C3/9BE6:	B46D    	LDY $6D,X      ; Address
C3/9BE8:	8467    	STY $67        ; Memorize it
C3/9BEA:	60      	RTS

Draw equipped armaments in Equip menu
C3/9BEB:	200C9C  	JSR $9C0C      ; Test Empty x2
C3/9BEE:	A2DB79  	LDX #$79DB     ; Tilemap ptr
C3/9BF1:	205C9C  	JSR $9C5C      ; Set Y, coords
C3/9BF4:	B91F00  	LDA $001F,Y    ; R-Hand item
C3/9BF7:	208A97  	JSR $978A      ; Load name
C3/9BFA:	20B987  	JSR $87B9      ; Draw name
C3/9BFD:	200C9C  	JSR $9C0C      ; Test Empty x2
C3/9C00:	A25B7A  	LDX #$7A5B     ; Tilemap ptr
C3/9C03:	205C9C  	JSR $9C5C      ; Set Y, coords
C3/9C06:	B92000  	LDA $0020,Y    ; L-Hand item
C3/9C09:	4C689C  	JMP $9C68      ; Draw name

Check if "Empty" should be drawn for both hands
C3/9C0C:	20E19B  	JSR $9BE1      ; Define Y
C3/9C0F:	B91F00  	LDA $001F,Y    ; R-Hand item
C3/9C12:	C9FF    	CMP #$FF       ; Nothing?
C3/9C14:	D00B    	BNE $9C21      ; Forbid if not
C3/9C16:	B92000  	LDA $0020,Y    ; L-Hand item
C3/9C19:	C9FF    	CMP #$FF       ; Nothing?
C3/9C1B:	D004    	BNE $9C21      ; Forbid if not
C3/9C1D:	85E0    	STA $E0        ; Allow "Empty"
C3/9C1F:	8002    	BRA $9C23      ; Exit
C3/9C21:	64E0    	STZ $E0        ; Forbid "Empty"
C3/9C23:	60      	RTS

Draw equipped helmet in Equip menu
C3/9C24:	A2DB7A  	LDX #$7ADB     ; Tilemap ptr
C3/9C27:	205C9C  	JSR $9C5C      ; Set Y, coords
C3/9C2A:	64E0    	STZ $E0        ; Forbid "Empty"
C3/9C2C:	B92100  	LDA $0021,Y    ; Helmet
C3/9C2F:	4C689C  	JMP $9C68      ; Draw its name

Draw equipped armor in Equip menu
C3/9C32:	A25B7B  	LDX #$7B5B     ; Tilemap ptr
C3/9C35:	205C9C  	JSR $9C5C      ; Set Y, coords
C3/9C38:	64E0    	STZ $E0        ; Forbid "Empty"
C3/9C3A:	B92200  	LDA $0022,Y    ; Armor
C3/9C3D:	4C689C  	JMP $9C68      ; Draw its name

Draw equipped relic 1 in Relic menu
C3/9C40:	A2DB7A  	LDX #$7ADB     ; Tilemap ptr
C3/9C43:	205C9C  	JSR $9C5C      ; Set Y, coords
C3/9C46:	64E0    	STZ $E0        ; Forbid "Empty"
C3/9C48:	B92300  	LDA $0023,Y    ; Relic 1
C3/9C4B:	4C689C  	JMP $9C68      ; Draw its name

Draw equipped relic 2 in Relic menu
C3/9C4E:	A25B7B  	LDX #$7B5B     ; Tilemap ptr
C3/9C51:	205C9C  	JSR $9C5C      ; Set Y, coords
C3/9C54:	64E0    	STZ $E0        ; Forbid "Empty"
C3/9C56:	B92400  	LDA $0024,Y    ; Relic 2
C3/9C59:	4C689C  	JMP $9C68      ; Draw its name

Set text position and load actor data address
C3/9C5C:	C220    	REP #$20       ; 16-bit A
C3/9C5E:	8A      	TXA            ; Tilemap ptr
C3/9C5F:	8F899E7E	STA $7E9E89    ; Set position
C3/9C63:	E220    	SEP #$20       ; 8-bit A
C3/9C65:	4CE19B  	JMP $9BE1      ; Load address

Load and draw equipped item's name
C3/9C68:	208A97  	JSR $978A      ; Load item name
C3/9C6B:	4CB987  	JMP $87B9      ; Draw item name

Window layout for Equip and Relic menus
C3/9C6E:	4B5B1C0D	; 30x15 at $5B4B (Stats w/o title)
C3/9C72:	0B591C07	; 30x09 at $590B (Gear w/o title)
C3/9C76:	8B581C02	; 30x04 at $588B (Options)
C3/9C7A:	4B631C0D	; 30x15 at $634B (Stats w/ title)
C3/9C7E:	0B611C07	; 30x09 at $610B (Gear w/ title)
C3/9C82:	B9600502	; 07x04 at $60B9 (Title)

Set to condense text for party gear overview or final battle lineup
C3/9C86:	A902    	LDA #$02       ; 1Rx2B to PPU
C3/9C88:	8D5043  	STA $4350      ; Set DMA mode
C3/9C8B:	A90E    	LDA #$0E       ; $210E
C3/9C8D:	8D5143  	STA $4351      ; To BG1 V-Scroll
C3/9C90:	A0C79D  	LDY #$9DC7     ; C3/9DC7
C3/9C93:	8C5243  	STY $4352      ; Set src LBs
C3/9C96:	A9C3    	LDA #$C3       ; Bank: C3
C3/9C98:	8D5443  	STA $4354      ; Set src HB
C3/9C9B:	A9C3    	LDA #$C3       ; ...
C3/9C9D:	8D5743  	STA $4357      ; Set indir HB
C3/9CA0:	A920    	LDA #$20       ; Channel: 5
C3/9CA2:	0443    	TSB $43        ; Queue HDMA-5
C3/9CA4:	60      	RTS

Set to condense text in Equip or Relic menu
C3/9CA5:	A902    	LDA #$02       ; 1Rx2B to PPU
C3/9CA7:	8D5043  	STA $4350      ; Set CH5 mode
C3/9CAA:	A912    	LDA #$12       ; $2112
C3/9CAC:	8D5143  	STA $4351      ; To BG3 V-Scroll
C3/9CAF:	A0C79D  	LDY #$9DC7     ; C3/9DC7
C3/9CB2:	8C5243  	STY $4352      ; Set CH5 src LBs
C3/9CB5:	A9C3    	LDA #$C3       ; Bank: C3
C3/9CB7:	8D5443  	STA $4354      ; Set CH5 src HB
C3/9CBA:	A9C3    	LDA #$C3       ; ...
C3/9CBC:	8D5743  	STA $4357      ; Set indir HB
C3/9CBF:	A920    	LDA #$20       ; Channel: 5
C3/9CC1:	0443    	TSB $43        ; Queue HDMA-5
C3/9CC3:	200F9D  	JSR $9D0F      ; Load BG1 V-Data
C3/9CC6:	A600    	LDX $00        ; Index: 0
C3/9CC8:	BF539DC3	LDA $C39D53,X  ; BG1 H-Pan data
C3/9CCC:	9FC99B7E	STA $7E9BC9,X  ; Save in RAM
C3/9CD0:	E8      	INX            ; Index +1
C3/9CD1:	E00D00  	CPX #$000D     ; End of table?
C3/9CD4:	D0F2    	BNE $9CC8      ; Loop if not
C3/9CD6:	A902    	LDA #$02       ; 1Rx2B to PPU
C3/9CD8:	8D6043  	STA $4360      ; Set CH6 mode
C3/9CDB:	A90D    	LDA #$0D       ; $210D
C3/9CDD:	8D6143  	STA $4361      ; To BG1 H-Scroll
C3/9CE0:	A0C99B  	LDY #$9BC9     ; 7E/9BC9
C3/9CE3:	8C6243  	STY $4362      ; Set CH6 src LBs
C3/9CE6:	A97E    	LDA #$7E       ; Bank: 7E
C3/9CE8:	8D6443  	STA $4364      ; Set CH6 src HB
C3/9CEB:	A97E    	LDA #$7E       ; ...
C3/9CED:	8D6743  	STA $4367      ; Set indir HB
C3/9CF0:	A902    	LDA #$02       ; 1Rx2B to PPU
C3/9CF2:	8D7043  	STA $4370      ; Set CH7 mode
C3/9CF5:	A90E    	LDA #$0E       ; $210E
C3/9CF7:	8D7143  	STA $4371      ; To BG1 V-Scroll
C3/9CFA:	A04998  	LDY #$9849     ; 7E/9849
C3/9CFD:	8C7243  	STY $4372      ; Set CH7 src LBs
C3/9D00:	A97E    	LDA #$7E       ; Bank: 7E
C3/9D02:	8D7443  	STA $4374      ; Set CH7 src HB
C3/9D05:	A97E    	LDA #$7E       ; ...
C3/9D07:	8D7743  	STA $4377      ; Set indir HB
C3/9D0A:	A9C0    	LDA #$C0       ; Channels: 6, 7
C3/9D0C:	0443    	TSB $43        ; Queue HDMA 6+7
C3/9D0E:	60      	RTS

Load BG1 vertical shift table for Equip or Relic menu
C3/9D0F:	A600    	LDX $00        ; Index: 0
C3/9D11:	BF609DC3	LDA $C39D60,X  ; Void's V-Data
C3/9D15:	9F49987E	STA $7E9849,X  ; Save in RAM
C3/9D19:	E8      	INX            ; Index +1
C3/9D1A:	E01200  	CPX #$0012     ; At item data?
C3/9D1D:	D0F2    	BNE $9D11      ; Loop if not
C3/9D1F:	BF609DC3	LDA $C39D60,X  ; Scanline data
C3/9D23:	9F49987E	STA $7E9849,X  ; Save in RAM
C3/9D27:	E8      	INX            ; Index +1
C3/9D28:	7B      	TDC            ; Clear A
C3/9D29:	A549    	LDA $49        ; BG1 top row
C3/9D2B:	0A      	ASL A          ; x2
C3/9D2C:	0A      	ASL A          ; x4
C3/9D2D:	0A      	ASL A          ; x8
C3/9D2E:	0A      	ASL A          ; x16
C3/9D2F:	29FF    	AND #$FF       ; ...
C3/9D31:	C221    	REP #$21       ; 16-bit A; C-
C3/9D33:	7F609DC3	ADC $C39D60,X  ; Add V-Pan data
C3/9D37:	9F49987E	STA $7E9849,X  ; Save in RAM
C3/9D3B:	E220    	SEP #$20       ; 8-bit A
C3/9D3D:	E8      	INX            ; Index +1
C3/9D3E:	E8      	INX            ; Index +1
C3/9D3F:	E06300  	CPX #$0063     ; Beyond list?
C3/9D42:	D0DB    	BNE $9D1F      ; Loop if not
C3/9D44:	BF609DC3	LDA $C39D60,X  ; Void's V-Data
C3/9D48:	9F49987E	STA $7E9849,X  ; Save in RAM
C3/9D4C:	E8      	INX            ; Index +1
C3/9D4D:	E06700  	CPX #$0067     ; End of table?
C3/9D50:	D0F2    	BNE $9D44      ; Loop if not
C3/9D52:	60      	RTS

BG1 H-Shift table for gear list browsing
C3/9D53:	27 0001 	; Nothing?
C3/9D56:	3C 0001 	; Nothing?
C3/9D59:	6C 0000 	; Item list
C3/9D5C:	1E 0001 	; Nothing?
C3/9D5F:	00      	; End

BG1 V-Shift table for gear list browsing
C3/9D60:	3F 0000 	; Nothing?
C3/9D63:	0C 0400 	; Nothing?
C3/9D66:	0C 0800 	; Nothing?
C3/9D69:	0A 0C00 	; Nothing?
C3/9D6C:	01 0C00 	; Nothing?
C3/9D6F:	01 0C00 	; Nothing?
C3/9D72:	04 A0FF 	; Item row 1
C3/9D75:	04 A0FF 	; Item row 2
C3/9D78:	04 A0FF 	; Item row 3
C3/9D7B:	04 A4FF 	; Item row 4
C3/9D7E:	04 A4FF 	; Item row 5
C3/9D81:	04 A4FF 	; Item row 6
C3/9D84:	04 A8FF 	; Item row 7
C3/9D87:	04 A8FF 	; Item row 8
C3/9D8A:	04 A8FF 	; Item row 9
C3/9D8D:	04 ACFF 	; Item row 10
C3/9D90:	04 ACFF 	; Item row 11
C3/9D93:	04 ACFF 	; Item row 12
C3/9D96:	04 B0FF 	; Item row 13
C3/9D99:	04 B0FF 	; Item row 14
C3/9D9C:	04 B0FF 	; Item row 15
C3/9D9F:	04 B4FF 	; Item row 16
C3/9DA2:	04 B4FF 	; Item row 17
C3/9DA5:	04 B4FF 	; Item row 18
C3/9DA8:	04 B8FF 	; Item row 19
C3/9DAB:	04 B8FF 	; Item row 20
C3/9DAE:	04 B8FF 	; Item row 21
C3/9DB1:	04 BCFF 	; Item row 22
C3/9DB4:	04 BCFF 	; Item row 23
C3/9DB7:	04 BCFF 	; Item row 24
C3/9DBA:	04 C0FF 	; Item row 25
C3/9DBD:	04 C0FF 	; Item row 26
C3/9DC0:	04 C0FF 	; Item row 27
C3/9DC3:	1E 1000 	; Nothing?
C3/9DC6:	00      	; End

V-Shift table for gear menus and final battle lineup
C3/9DC7:	0F 0000 	; Nothing
C3/9DCA:	0C 0400 	; Options, title
C3/9DCD:	0C 0800 	; Reequip mode
C3/9DD0:	0C 0C00 	; R-Hand
C3/9DD3:	0C 1000 	; L-Hand
C3/9DD6:	0C 1400 	; Head, Relic 1
C3/9DD9:	0C 1800 	; Body, Relic 2
C3/9DDC:	0C 1C00 	; Member 2's armor
C3/9DDF:	0C 2000 	; Vigor
C3/9DE2:	0C 2400 	; Speed
C3/9DE5:	0C 2800 	; Stamina
C3/9DE8:	0C 2C00 	; Mag.Pwr
C3/9DEB:	0C 3000 	; Bat.Pwr
C3/9DEE:	0C 3400 	; Defense
C3/9DF1:	0C 3800 	; Evade
C3/9DF4:	0C 3C00 	; Mag.Def
C3/9DF7:	0C 4000 	; MBlock
C3/9DFA:	00      	; End

Switch to layout with options in Equip or Relic menu
C3/9DFB:	204C9E  	JSR $9E4C      ; Erase title
C3/9DFE:	A400    	LDY $00        ; X: 0
C3/9E00:	8439    	STY $39        ; Set BG2 X-Pos
C3/9E02:	60      	RTS

Switch to layout without options in Equip or Relic menu
C3/9E03:	204C9E  	JSR $9E4C      ; Erase options
C3/9E06:	A00001  	LDY #$0100     ; X: 256
C3/9E09:	8439    	STY $39        ; Set BG2 X-Pos
C3/9E0B:	A92C    	LDA #$2C       ; Palette 3
C3/9E0D:	8529    	STA $29        ; Color: Blue
C3/9E0F:	60      	RTS            ; ^ For "Equip"

36: Handle Equip menu options
C3/9E10:	20FB9D  	JSR $9DFB      ; Switch windows
C3/9E13:	20F797  	JSR $97F7      ; Draw options
C3/9E16:	20CB95  	JSR $95CB      ; Handle D-Pad
C3/9E19:	A508    	LDA $08        ; No-autofire keys
C3/9E1B:	8980    	BIT #$80       ; Pushing A?
C3/9E1D:	F005    	BEQ $9E24      ; Branch if not
C3/9E1F:	201D0F  	JSR $0F1D      ; Sound: Click
C3/9E22:	802F    	BRA $9E53      ; Handle selection

Fork: Handle B
C3/9E24:	A509    	LDA $09        ; No-autofire keys
C3/9E26:	8980    	BIT #$80       ; Pushing B?
C3/9E28:	F00D    	BEQ $9E37      ; Branch if not
C3/9E2A:	20140F  	JSR $0F14      ; Sound: Cursor
C3/9E2D:	20B998  	JSR $98B9      ; Update field FX
C3/9E30:	A904    	LDA #$04       ; C3/1AF0
C3/9E32:	8527    	STA $27        ; Queue main menu
C3/9E34:	6426    	STZ $26        ; Next: Fade-out
C3/9E36:	60      	RTS

Fork: Handle L and R, prepare for menu reset
C3/9E37:	A935    	LDA #$35       ; C3/1C1E
C3/9E39:	85E0    	STA $E0        ; Set init command
C3/9E3B:	4C8820  	JMP $2088      ; Handle L and R

Draw blue "Equip" in Equip or Relic menu
C3/9E3E:	A00EAB  	LDY #$AB0E     ; Text pointer
C3/9E41:	202603  	JSR $0326      ; Draw title
C3/9E44:	60      	RTS

Draw blue "Remove" in Equip or Relic menu
C3/9E45:	A014AB  	LDY #$AB14     ; Text pointer
C3/9E48:	202603  	JSR $0326      ; Draw title
C3/9E4B:	60      	RTS

Erase options and title in Equip or Relic menu
C3/9E4C:	A0F1AA  	LDY #$AAF1     ; Text pointer
C3/9E4F:	202603  	JSR $0326      ; Draw 26 spaces
C3/9E52:	60      	RTS

Handle selected option in Equip menu
C3/9E53:	7B      	TDC            ; Clear A
C3/9E54:	A54B    	LDA $4B        ; Cursor slot
C3/9E56:	0A      	ASL A          ; Double it
C3/9E57:	AA      	TAX            ; Index it
C3/9E58:	7C5B9E  	JMP ($9E5B,X)  ; Handle option

Jump table for the above
C3/9E5B:	639E    	; EQUIP
C3/9E5D:	749E    	; OPTIMUM
C3/9E5F:	7D9E    	; RMOVE
C3/9E61:	8E9E    	; EMPTY

Handle "EQUIP" selection in Equip menu
C3/9E63:	20039E  	JSR $9E03      ; Switch windows
C3/9E66:	203E9E  	JSR $9E3E      ; Draw blue "EQUIP"
C3/9E69:	20E195  	JSR $95E1      ; Load navig data
C3/9E6C:	20EA95  	JSR $95EA      ; Relocate cursor
C3/9E6F:	A955    	LDA #$55       ; C3/A073
C3/9E71:	8526    	STA $26        ; Next: Slot choice
C3/9E73:	60      	RTS

Handle "OPTIMUM" selection in Equip menu
C3/9E74:	20DF9E  	JSR $9EDF      ; Optimize gear
C3/9E77:	20C498  	JSR $98C4      ; Redo text, status
C3/9E7A:	644D    	STZ $4D        ; Cursor: "USE"
C3/9E7C:	60      	RTS

Handle "RMOVE" selection in Equip menu
C3/9E7D:	20039E  	JSR $9E03      ; Switch windows
C3/9E80:	20459E  	JSR $9E45      ; Draw blue "REMOVE"
C3/9E83:	20E195  	JSR $95E1      ; Load navig data
C3/9E86:	20EA95  	JSR $95EA      ; Relocate cursor
C3/9E89:	A956    	LDA #$56       ; C3/A0BE
C3/9E8B:	8526    	STA $26        ; Next: Slot choice
C3/9E8D:	60      	RTS

Handle "EMPTY" selection in Equip menu
C3/9E8E:	20979E  	JSR $9E97      ; Remove gear
C3/9E91:	20C498  	JSR $98C4      ; Redo text, status
C3/9E94:	644D    	STZ $4D        ; Cursor: "USE"
C3/9E96:	60      	RTS

Remove character's equipment
C3/9E97:	20E19B  	JSR $9BE1      ; Define Y
C3/9E9A:	B91F00  	LDA $001F,Y    ; R-Hand item
C3/9E9D:	206CA5  	JSR $A56C      ; Put in stock
C3/9EA0:	B92000  	LDA $0020,Y    ; L-Hand item
C3/9EA3:	206CA5  	JSR $A56C      ; Put in stock
C3/9EA6:	B92100  	LDA $0021,Y    ; Helmet
C3/9EA9:	206CA5  	JSR $A56C      ; Put in stock
C3/9EAC:	B92200  	LDA $0022,Y    ; Armor
C3/9EAF:	206CA5  	JSR $A56C      ; Put in stock
C3/9EB2:	A9FF    	LDA #$FF       ; Empty item
C3/9EB4:	991F00  	STA $001F,Y    ; Clear R-Hand
C3/9EB7:	992000  	STA $0020,Y    ; Clear L-Hand
C3/9EBA:	992100  	STA $0021,Y    ; Clear helmet
C3/9EBD:	992200  	STA $0022,Y    ; Clear armor
C3/9EC0:	60      	RTS

Optimize member's equipment (event command)
C3/9EC1:	208770  	JSR $7087      ; Get party info
C3/9EC4:	7B      	TDC            ; Clear A
C3/9EC5:	AA      	TAX            ; Member slot: 1
C3/9EC6:	AD0102  	LDA $0201      ; Actor to equip
C3/9EC9:	D569    	CMP $69,X      ; In member slot?
C3/9ECB:	F008    	BEQ $9ED5      ; Branch if so
C3/9ECD:	E8      	INX            ; Member slot +1
C3/9ECE:	E00400  	CPX #$0004     ; Done 4 members?
C3/9ED1:	D0F6    	BNE $9EC9      ; Loop if not
C3/9ED3:	80FE    	BRA $9ED3      ; Freeze game...
C3/9ED5:	8A      	TXA            ; Member slot
C3/9ED6:	8528    	STA $28        ; Memorize it
C3/9ED8:	20B998  	JSR $98B9      ; ...
C3/9EDB:	20DF9E  	JSR $9EDF      ; Optimize gear
C3/9EDE:	6B      	RTL

Optimize character's equipment
C3/9EDF:	20B998  	JSR $98B9      ; Get gear FX
C3/9EE2:	20979E  	JSR $9E97      ; Remove gear
C3/9EE5:	20E19B  	JSR $9BE1      ; Actor's address
C3/9EE8:	84F3    	STY $F3        ; Memorize it
C3/9EEA:	ADD811  	LDA $11D8      ; Gear effects
C3/9EED:	2908    	AND #$08       ; Gauntlet?
C3/9EEF:	F018    	BEQ $9F09      ; Branch if not

Fork: Put a two-handed weapon in R-Hand
C3/9EF1:	644B    	STZ $4B        ; ...
C3/9EF3:	2048A3  	JSR $A348      ; ...
C3/9EF6:	20849F  	JSR $9F84      ; Get valid items
C3/9EF9:	205EA9  	JSR $A95E      ; Sort by power
C3/9EFC:	202EA0  	JSR $A02E      ; Pick 2H weapon
C3/9EFF:	A4F3    	LDY $F3        ; Actor's address
C3/9F01:	991F00  	STA $001F,Y    ; Set R-Hand item
C3/9F04:	20A5A5  	JSR $A5A5      ; Adjust stock
C3/9F07:	8051    	BRA $9F5A      ; Handle helmet

Fork: Put a weapon in R-Hand
C3/9F09:	644B    	STZ $4B        ; ...
C3/9F0B:	2048A3  	JSR $A348      ; ...
C3/9F0E:	20849F  	JSR $9F84      ; Get valid items
C3/9F11:	205EA9  	JSR $A95E      ; Sort by power
C3/9F14:	A4F3    	LDY $F3        ; Actor's address
C3/9F16:	2008A0  	JSR $A008      ; Pick a weapon
C3/9F19:	991F00  	STA $001F,Y    ; Put in R-Hand
C3/9F1C:	20A5A5  	JSR $A5A5      ; Adjust stock
C3/9F1F:	ADD811  	LDA $11D8      ; Gear effects
C3/9F22:	2910    	AND #$10       ; Genji Glove?
C3/9F24:	D01A    	BNE $9F40      ; Branch if so

Fork: Put a shield in L-Hand
C3/9F26:	A901    	LDA #$01       ; ...
C3/9F28:	854B    	STA $4B        ; ...
C3/9F2A:	2048A3  	JSR $A348      ; ...
C3/9F2D:	20C69F  	JSR $9FC6      ; Get valid items
C3/9F30:	205EA9  	JSR $A95E      ; Sort by defense
C3/9F33:	A4F3    	LDY $F3        ; Actor's address
C3/9F35:	2008A0  	JSR $A008      ; Pick a shield
C3/9F38:	992000  	STA $0020,Y    ; Put in L-Hand
C3/9F3B:	20A5A5  	JSR $A5A5      ; Adjust stock
C3/9F3E:	801A    	BRA $9F5A      ; Handle helmet

Fork: Put a weapon in L-Hand
C3/9F40:	A901    	LDA #$01       ; ...
C3/9F42:	854B    	STA $4B        ; ...
C3/9F44:	2048A3  	JSR $A348      ; ...
C3/9F47:	20849F  	JSR $9F84      ; Get valid items
C3/9F4A:	205EA9  	JSR $A95E      ; Sort by power
C3/9F4D:	A4F3    	LDY $F3        ; Actor's address
C3/9F4F:	2008A0  	JSR $A008      ; Pick a weapon
C3/9F52:	992000  	STA $0020,Y    ; Put in L-Hand
C3/9F55:	20A5A5  	JSR $A5A5      ; Adjust stock
C3/9F58:	8000    	BRA $9F5A      ; ...

Fork: Optimize helmet
C3/9F5A:	A902    	LDA #$02       ; Target: Head
C3/9F5C:	854B    	STA $4B        ; Set body part
C3/9F5E:	2048A3  	JSR $A348      ; Get valid items
C3/9F61:	205EA9  	JSR $A95E      ; Sort by defense
C3/9F64:	A4F3    	LDY $F3        ; Actor's address
C3/9F66:	2008A0  	JSR $A008      ; Choose helmet
C3/9F69:	992100  	STA $0021,Y    ; Put on actor
C3/9F6C:	20A5A5  	JSR $A5A5      ; Adjust stock

Fork: Optimize armor
C3/9F6F:	A903    	LDA #$03       ; Target: Torso
C3/9F71:	854B    	STA $4B        ; Set body part
C3/9F73:	2048A3  	JSR $A348      ; Get valid items
C3/9F76:	205EA9  	JSR $A95E      ; Sort by defense
C3/9F79:	A4F3    	LDY $F3        ; Actor's address
C3/9F7B:	2008A0  	JSR $A008      ; Choose armor
C3/9F7E:	992200  	STA $0022,Y    ; Put on actor
C3/9F81:	4CA5A5  	JMP $A5A5      ; Adjust stock

Compile compatible weapons for Optimum
C3/9F84:	2019A4  	JSR $A419      ; Init list
C3/9F87:	2030A4  	JSR $A430      ; Define compat
C3/9F8A:	A600    	LDX $00        ; Clear X
C3/9F8C:	9B      	TXY            ; Item slot: 1
C3/9F8D:	7B      	TDC            ; Clear A
C3/9F8E:	B96918  	LDA $1869,Y    ; Item in slot
C3/9F91:	C9FF    	CMP #$FF       ; None?
C3/9F93:	F022    	BEQ $9FB7      ; Skip if so
C3/9F95:	20A28A  	JSR $8AA2      ; Compute index
C3/9F98:	AE3421  	LDX $2134      ; Load it
C3/9F9B:	BF0050D8	LDA $D85000,X  ; Properties
C3/9F9F:	2907    	AND #$07       ; Get class
C3/9FA1:	C901    	CMP #$01       ; Weapon?
C3/9FA3:	D012    	BNE $9FB7      ; Skip if not
C3/9FA5:	C220    	REP #$20       ; 16-bit A
C3/9FA7:	BF0150D8	LDA $D85001,X  ; Compatibility
C3/9FAB:	24E7    	BIT $E7        ; Actor can use?
C3/9FAD:	F008    	BEQ $9FB7      ; Skip if not
C3/9FAF:	E220    	SEP #$20       ; 8-bit A
C3/9FB1:	98      	TYA            ; Item slot
C3/9FB2:	8D8021  	STA $2180      ; Add to list
C3/9FB5:	E6E0    	INC $E0        ; List size +1
C3/9FB7:	E220    	SEP #$20       ; 8-bit A
C3/9FB9:	C8      	INY            ; Item slot +1
C3/9FBA:	C0FF00  	CPY #$00FF     ; Done 255?...
C3/9FBD:	D0CE    	BNE $9F8D      ; Loop if not
C3/9FBF:	A5E0    	LDA $E0        ; List size
C3/9FC1:	8F899D7E	STA $7E9D89    ; Save to list
C3/9FC5:	60      	RTS

Compile compatible shields for Optimum
C3/9FC6:	2019A4  	JSR $A419      ; Init list
C3/9FC9:	2030A4  	JSR $A430      ; Define compat
C3/9FCC:	A600    	LDX $00        ; Clear X
C3/9FCE:	9B      	TXY            ; Item slot: 1
C3/9FCF:	7B      	TDC            ; Clear A
C3/9FD0:	B96918  	LDA $1869,Y    ; Item in slot
C3/9FD3:	C9FF    	CMP #$FF       ; None?
C3/9FD5:	F022    	BEQ $9FF9      ; Skip if so
C3/9FD7:	20A28A  	JSR $8AA2      ; Compute index
C3/9FDA:	AE3421  	LDX $2134      ; Load it
C3/9FDD:	BF0050D8	LDA $D85000,X  ; Properties
C3/9FE1:	2907    	AND #$07       ; Get class
C3/9FE3:	C903    	CMP #$03       ; Shield?
C3/9FE5:	D012    	BNE $9FF9      ; Skip if not
C3/9FE7:	C220    	REP #$20       ; 16-bit A
C3/9FE9:	BF0150D8	LDA $D85001,X  ; Compatibility
C3/9FED:	24E7    	BIT $E7        ; Actor can use?
C3/9FEF:	F008    	BEQ $9FF9      ; Skip if not
C3/9FF1:	E220    	SEP #$20       ; 8-bit A
C3/9FF3:	98      	TYA            ; Item slot
C3/9FF4:	8D8021  	STA $2180      ; Add to list
C3/9FF7:	E6E0    	INC $E0        ; List size +1
C3/9FF9:	E220    	SEP #$20       ; 8-bit A
C3/9FFB:	C8      	INY            ; Item slot +1
C3/9FFC:	C0FF00  	CPY #$00FF     ; Done 255?...
C3/9FFF:	D0CE    	BNE $9FCF      ; Loop if not
C3/A001:	A5E0    	LDA $E0        ; List size
C3/A003:	8F899D7E	STA $7E9D89    ; Save to list
C3/A007:	60      	RTS

Select first non-excluded item in sorted list of compatible gear
C3/A008:	5A      	PHY            ; Save Y
C3/A009:	8B      	PHB            ; Save DB
C3/A00A:	A97E    	LDA #$7E       ; Bank: 7E
C3/A00C:	48      	PHA            ; Put on stack
C3/A00D:	AB      	PLB            ; Set DB to 7E
C3/A00E:	7B      	TDC            ; Clear A
C3/A00F:	A8      	TAY            ; RAM index: 0
C3/A010:	7B      	TDC            ; Clear A
C3/A011:	AA      	TAX            ; ROM index: 0
C3/A012:	DA      	PHX            ; Save index
C3/A013:	7B      	TDC            ; ...
C3/A014:	B98A9D  	LDA $9D8A,Y    ; Stock slot
C3/A017:	AA      	TAX            ; Index it
C3/A018:	BD6918  	LDA $1869,X    ; Item in slot
C3/A01B:	FA      	PLX            ; ROM index
C3/A01C:	DFE482ED	CMP $ED82E4,X  ; Excluded?
C3/A020:	F009    	BEQ $A02B      ; Skip if so
C3/A022:	E8      	INX            ; ROM index +1
C3/A023:	E00A00  	CPX #$000A     ; Tested 10?
C3/A026:	D0EA    	BNE $A012      ; Loop if not
C3/A028:	AB      	PLB            ; Restore DB
C3/A029:	7A      	PLY            ; Restore Y
C3/A02A:	60      	RTS            ; Exit
C3/A02B:	C8      	INY            ; RAM index +1
C3/A02C:	80E2    	BRA $A010      ; Try next item

Exclusions: Cursed Shld, Thornlet, Imp set, Atma Weapon, Drainer, Soul Sabre, Heal Rod


Select first two-handed weapon from sorted list of compatible gear
C3/A02E:	AF899D7E	LDA $7E9D89    ; List size
C3/A032:	F03C    	BEQ $A070      ; Branch if 0
C3/A034:	85CB    	STA $CB        ; Memorize it
C3/A036:	64CC    	STZ $CC        ; Clear its HB
C3/A038:	7B      	TDC            ; Clear A
C3/A039:	A8      	TAY            ; RAM index: 0
C3/A03A:	7B      	TDC            ; Clear A
C3/A03B:	AA      	TAX            ; ROM index: 0
C3/A03C:	DA      	PHX            ; Save index
C3/A03D:	7B      	TDC            ; ...
C3/A03E:	BB      	TYX            ; RAM index
C3/A03F:	BF8A9D7E	LDA $7E9D8A,X  ; Stock slot
C3/A043:	AA      	TAX            ; Index it
C3/A044:	BD6918  	LDA $1869,X    ; Item in slot
C3/A047:	FA      	PLX            ; ROM index
C3/A048:	DFE482ED	CMP $ED82E4,X  ; Excluded?
C3/A04C:	F019    	BEQ $A067      ; Skip if so
C3/A04E:	E8      	INX            ; ROM index +1
C3/A04F:	E00A00  	CPX #$000A     ; Tested 10?
C3/A052:	D0E8    	BNE $A03C      ; Loop if not
C3/A054:	85C9    	STA $C9        ; Save item
C3/A056:	20A28A  	JSR $8AA2      ; Compute index
C3/A059:	AE3421  	LDX $2134      ; Load it
C3/A05C:	BF1350D8	LDA $D85013,X  ; Properties
C3/A060:	2940    	AND #$40       ; 2-hand OK?
C3/A062:	F003    	BEQ $A067      ; Skip if not
C3/A064:	A5C9    	LDA $C9        ; Item
C3/A066:	60      	RTS

Fork: Try next weapon, ignore Gauntlet if no valid options
C3/A067:	C8      	INY            ; RAM index +1
C3/A068:	C4CB    	CPY $CB        ; End of list?
C3/A06A:	D0CE    	BNE $A03A      ; Loop if not
C3/A06C:	2008A0  	JSR $A008      ; Pick 1H weapon
C3/A06F:	60      	RTS

Fork: Default to empty item
C3/A070:	A9FF    	LDA #$FF       ; Empty item
C3/A072:	60      	RTS

55: Handle selection of gear slot to fill
C3/A073:	20E795  	JSR $95E7      ; Handle D-Pad
C3/A076:	2064A1  	JSR $A164      ; Recolor hand names
C3/A079:	A508    	LDA $08        ; No-autofire keys
C3/A07B:	8980    	BIT #$80       ; Pushing A?
C3/A07D:	F024    	BEQ $A0A3      ; Branch if not
C3/A07F:	201D0F  	JSR $0F1D      ; Sound: Click
C3/A082:	A54E    	LDA $4E        ; Cursor row
C3/A084:	855F    	STA $5F        ; Set body slot
C3/A086:	A957    	LDA #$57       ; C3/A0FE
C3/A088:	8526    	STA $26        ; Next: Item list
C3/A08A:	2048A3  	JSR $A348      ; Build item list
C3/A08D:	205EA9  	JSR $A95E      ; Sort it by power
C3/A090:	20DAA2  	JSR $A2DA      ; Cursor & Scrollbar
C3/A093:	A955    	LDA #$55       ; Return here if..
C3/A095:	8527    	STA $27        ; ..list is empty
C3/A097:	201C9A  	JSR $9A1C      ; Draw stat preview
C3/A09A:	20A971  	JSR $71A9      ; Blank item list
C3/A09D:	20D313  	JSR $13D3      ; Refresh screen
C3/A0A0:	4C9BA4  	JMP $A49B      ; Draw item list

Fork: Handle B
C3/A0A3:	A509    	LDA $09        ; No-autofire keys
C3/A0A5:	8980    	BIT #$80       ; Pushing B?
C3/A0A7:	F00E    	BEQ $A0B7      ; Branch if not
C3/A0A9:	20140F  	JSR $0F14      ; Sound: Cursor
C3/A0AC:	20C595  	JSR $95C5      ; Load navig data
C3/A0AF:	20CE95  	JSR $95CE      ; Relocate cursor
C3/A0B2:	A936    	LDA #$36       ; C3/9E10
C3/A0B4:	8526    	STA $26        ; Next: Option list
C3/A0B6:	60      	RTS

Fork: Handle L and R, prepare for menu reset
C3/A0B7:	A97E    	LDA #$7E       ; C3/1C4B
C3/A0B9:	85E0    	STA $E0        ; Set init command
C3/A0BB:	4C8820  	JMP $2088      ; Handle L and R

56: Handle manual gear removal
C3/A0BE:	20E795  	JSR $95E7      ; Handle D-Pad
C3/A0C1:	A508    	LDA $08        ; No-autofire keys
C3/A0C3:	8980    	BIT #$80       ; Pushing A?
C3/A0C5:	F01C    	BEQ $A0E3      ; Branch if not
C3/A0C7:	201D0F  	JSR $0F1D      ; Sound: Click
C3/A0CA:	20E19B  	JSR $9BE1      ; Actor's address
C3/A0CD:	C221    	REP #$21       ; 16-bit A; C-
C3/A0CF:	98      	TYA            ; Move it to A
C3/A0D0:	E220    	SEP #$20       ; 8-bit A
C3/A0D2:	654B    	ADC $4B        ; Add cursor slot
C3/A0D4:	A8      	TAY            ; Index sum
C3/A0D5:	B91F00  	LDA $001F,Y    ; Item in slot
C3/A0D8:	206CA5  	JSR $A56C      ; Put in stock
C3/A0DB:	A9FF    	LDA #$FF       ; Empty item
C3/A0DD:	991F00  	STA $001F,Y    ; Clear gear slot
C3/A0E0:	20C498  	JSR $98C4      ; Redo text, status

Fork: Handle B
C3/A0E3:	A509    	LDA $09        ; No-autofire keys
C3/A0E5:	8980    	BIT #$80       ; Pushing B?
C3/A0E7:	F00E    	BEQ $A0F7      ; Branch if not
C3/A0E9:	20140F  	JSR $0F14      ; Sound: Cursor
C3/A0EC:	20C595  	JSR $95C5      ; Load navig data
C3/A0EF:	20CE95  	JSR $95CE      ; Relocate cursor
C3/A0F2:	A936    	LDA #$36       ; C3/9E10
C3/A0F4:	8526    	STA $26        ; Next: Option list
C3/A0F6:	60      	RTS

Fork: Handle L and R, prepare for menu reset
C3/A0F7:	A97F    	LDA #$7F       ; C3/1C59
C3/A0F9:	85E0    	STA $E0        ; Set init command
C3/A0FB:	4C8820  	JMP $2088      ; Handle L and R

57: Handle gear browsing
C3/A0FE:	20C2A2  	JSR $A2C2      ; Handle navigation
C3/A101:	201C9A  	JSR $9A1C      ; Draw stat preview
C3/A104:	A508    	LDA $08        ; No-autofire keys
C3/A106:	8980    	BIT #$80       ; Pushing A?
C3/A108:	F029    	BEQ $A133      ; Branch if not
C3/A10A:	2031A2  	JSR $A231      ; On a gray item?
C3/A10D:	904E    	BCC $A15D      ; Fail if so
C3/A10F:	201D0F  	JSR $0F1D      ; Sound: Click
C3/A112:	B91F00  	LDA $001F,Y    ; Item to unequip
C3/A115:	C9FF    	CMP #$FF       ; None?
C3/A117:	F003    	BEQ $A11C      ; Branch if so
C3/A119:	206CA5  	JSR $A56C      ; Put in stock
C3/A11C:	7B      	TDC            ; Clear A
C3/A11D:	A54B    	LDA $4B        ; Gear list slot
C3/A11F:	AA      	TAX            ; Index it
C3/A120:	BF8A9D7E	LDA $7E9D8A,X  ; Inventory slot
C3/A124:	AA      	TAX            ; Index it
C3/A125:	BD6918  	LDA $1869,X    ; Item in slot
C3/A128:	991F00  	STA $001F,Y    ; Equip on actor
C3/A12B:	20A5A5  	JSR $A5A5      ; Adjust stock
C3/A12E:	20C498  	JSR $98C4      ; Redo text, status
C3/A131:	8009    	BRA $A13C      ; Exit gear list

Fork: Handle B
C3/A133:	A509    	LDA $09        ; No-autofire keys
C3/A135:	8980    	BIT #$80       ; Pushing B?
C3/A137:	F023    	BEQ $A15C      ; Exit if not
C3/A139:	20140F  	JSR $0F14      ; Sound: Cursor
C3/A13C:	2076A4  	JSR $A476      ; Clear stat preview
C3/A13F:	C220    	REP #$20       ; 16-bit A
C3/A141:	A90001  	LDA #$0100     ; BG1 H-Shift: 256
C3/A144:	8FD09B7E	STA $7E9BD0    ; Hide gear list
C3/A148:	E220    	SEP #$20       ; 8-bit A
C3/A14A:	A9C1    	LDA #$C1       ; Top cursor: Off
C3/A14C:	1446    	TRB $46        ; Scrollbar: Off
C3/A14E:	20E195  	JSR $95E1      ; Load navig data
C3/A151:	A55F    	LDA $5F        ; Former position
C3/A153:	854E    	STA $4E        ; Set cursor row
C3/A155:	20EA95  	JSR $95EA      ; Relocate cursor
C3/A158:	A955    	LDA #$55       ; C3/A073
C3/A15A:	8526    	STA $26        ; Next: Body parts
C3/A15C:	60      	RTS

Fork: Invalid selection
C3/A15D:	202B0F  	JSR $0F2B      ; Play buzzer
C3/A160:	20F830  	JSR $30F8      ; Pixelate screen
C3/A163:	60      	RTS

Draw "R-hand" and "L-hand" in Equip menu
C3/A164:	ADD811  	LDA $11D8      ; Gear effects
C3/A167:	2908    	AND #$08       ; Gauntlet?
C3/A169:	F013    	BEQ $A17E      ; Branch if not
C3/A16B:	20E19B  	JSR $9BE1      ; Define Y
C3/A16E:	B91F00  	LDA $001F,Y    ; R-Hand item
C3/A171:	C9FF    	CMP #$FF       ; None?
C3/A173:	F020    	BEQ $A195      ; Branch if so
C3/A175:	B92000  	LDA $0020,Y    ; L-Hand item
C3/A178:	C9FF    	CMP #$FF       ; None?
C3/A17A:	F03D    	BEQ $A1B9      ; Branch if so
C3/A17C:	8000    	BRA $A17E      ; ...

Fork: Draw both hands in blue
C3/A17E:	A92C    	LDA #$2C       ; Palette 3
C3/A180:	8529    	STA $29        ; Color: Blue
C3/A182:	2087A1  	JSR $A187      ; Draw "R-hand"
C3/A185:	8007    	BRA $A18E      ; Draw "L-hand"

Sub: Draw "R-hand"
C3/A187:	A0C8AA  	LDY #$AAC8     ; Text pointer
C3/A18A:	202603  	JSR $0326      ; Draw "R-hand"
C3/A18D:	60      	RTS

Sub: Draw "L-hand"
C3/A18E:	A0CEAA  	LDY #$AACE     ; Text pointer
C3/A191:	202603  	JSR $0326      ; Draw "L-hand"
C3/A194:	60      	RTS

Fork: Check if L-Hand also empty
C3/A195:	B92000  	LDA $0020,Y    ; L-Hand item
C3/A198:	C9FF    	CMP #$FF       ; None?
C3/A19A:	D002    	BNE $A19E      ; Branch if not
C3/A19C:	80E0    	BRA $A17E      ; Draw both in blue

Fork: Check if two-handed weapon in L-Hand
C3/A19E:	20A28A  	JSR $8AA2      ; Compute index
C3/A1A1:	AE3421  	LDX $2134      ; Load it
C3/A1A4:	BF1350D8	LDA $D85013,X  ; Properties
C3/A1A8:	2940    	AND #$40       ; 2-hand OK?
C3/A1AA:	F0D2    	BEQ $A17E      ; Blue x2 if not
C3/A1AC:	A924    	LDA #$24       ; Palette 1
C3/A1AE:	8529    	STA $29        ; Color: Gray
C3/A1B0:	2087A1  	JSR $A187      ; Draw "R-hand"
C3/A1B3:	A92C    	LDA #$2C       ; Palette 3
C3/A1B5:	8529    	STA $29        ; Color: Blue
C3/A1B7:	80D5    	BRA $A18E      ; Draw "L-hand"

Fork: Check if two-handed weapon in R-Hand
C3/A1B9:	B91F00  	LDA $001F,Y    ; R-Hand item
C3/A1BC:	20A28A  	JSR $8AA2      ; Compute index
C3/A1BF:	AE3421  	LDX $2134      ; Load it
C3/A1C2:	BF1350D8	LDA $D85013,X  ; Properties
C3/A1C6:	2940    	AND #$40       ; 2-hand OK?
C3/A1C8:	F0B4    	BEQ $A17E      ; Blue x2 if not
C3/A1CA:	A92C    	LDA #$2C       ; Palette 3
C3/A1CC:	8529    	STA $29        ; Color: Blue
C3/A1CE:	2087A1  	JSR $A187      ; Draw "R-hand"
C3/A1D1:	A924    	LDA #$24       ; Palette 1
C3/A1D3:	8529    	STA $29        ; Color: Gray
C3/A1D5:	80B7    	BRA $A18E      ; Draw "L-hand"

Define Bat.Pwr mode (normal, doubled, or combined hands)
C3/A1D7:	64CD    	STZ $CD        ; Genji mode off
C3/A1D9:	ADD811  	LDA $11D8      ; Gear effects
C3/A1DC:	2910    	AND #$10       ; Genji Glove?
C3/A1DE:	F002    	BEQ $A1E2      ; Branch if not
C3/A1E0:	E6CD    	INC $CD        ; Pwr: Merge hands
C3/A1E2:	64A1    	STZ $A1        ; Power x2: Off
C3/A1E4:	ADD811  	LDA $11D8      ; Gear effects
C3/A1E7:	2908    	AND #$08       ; Gauntlet?
C3/A1E9:	F010    	BEQ $A1FB      ; Exit if not
C3/A1EB:	B91F00  	LDA $001F,Y    ; R-Hand item
C3/A1EE:	C9FF    	CMP #$FF       ; None?
C3/A1F0:	F00B    	BEQ $A1FD      ; Branch if so
C3/A1F2:	B92000  	LDA $0020,Y    ; L-Hand item
C3/A1F5:	C9FF    	CMP #$FF       ; None?
C3/A1F7:	F021    	BEQ $A21A      ; Branch if so
C3/A1F9:	8000    	BRA $A1FB      ; ...
C3/A1FB:	38      	SEC            ; ...
C3/A1FC:	60      	RTS

Fork: Check if L-Hand also empty
C3/A1FD:	B92000  	LDA $0020,Y    ; L-Hand item
C3/A200:	C9FF    	CMP #$FF       ; None?
C3/A202:	D002    	BNE $A206      ; Branch if not
C3/A204:	80F5    	BRA $A1FB      ; Exit

Fork: Check if two-handed weapon in L-Hand
C3/A206:	20A28A  	JSR $8AA2      ; Compute index
C3/A209:	AE3421  	LDX $2134      ; Load it
C3/A20C:	BF1350D8	LDA $D85013,X  ; Properties
C3/A210:	2940    	AND #$40       ; 2-hand OK?
C3/A212:	F0E7    	BEQ $A1FB      ; Exit if not
C3/A214:	18      	CLC            ; ...
C3/A215:	A901    	LDA #$01       ; Power: x2
C3/A217:	85A1    	STA $A1        ; Set Pwr mode
C3/A219:	60      	RTS

Fork: Check if two-handed weapon in R-Hand
C3/A21A:	B91F00  	LDA $001F,Y    ; R-Hand item
C3/A21D:	20A28A  	JSR $8AA2      ; Compute index
C3/A220:	AE3421  	LDX $2134      ; Load it
C3/A223:	BF1350D8	LDA $D85013,X  ; Properties
C3/A227:	2940    	AND #$40       ; 2-hand OK?
C3/A229:	F0D0    	BEQ $A1FB      ; Exit if not
C3/A22B:	18      	CLC            ; ...
C3/A22C:	A901    	LDA #$01       ; Power: x2
C3/A22E:	85A1    	STA $A1        ; Set Pwr mode
C3/A230:	60      	RTS

Check if pointing at grayed out gear
C3/A231:	2039A2  	JSR $A239      ; Actor address
C3/A234:	7B      	TDC            ; Clear A
C3/A235:	A54B    	LDA $4B        ; Gear list slot
C3/A237:	800C    	BRA $A245      ; Analyze item

Load address to selected body slot
C3/A239:	20E19B  	JSR $9BE1      ; Actor's address
C3/A23C:	C221    	REP #$21       ; 16-bit A; C-
C3/A23E:	98      	TYA            ; Move it to A
C3/A23F:	E220    	SEP #$20       ; 8-bit A
C3/A241:	655F    	ADC $5F        ; Add body slot
C3/A243:	A8      	TAY            ; Move it to Y
C3/A244:	60      	RTS

Determine whether gear list entry is disabled
C3/A245:	5A      	PHY            ; ...
C3/A246:	AA      	TAX            ; Gear list slot
C3/A247:	BF8A9D7E	LDA $7E9D8A,X  ; Inventory slot
C3/A24B:	AA      	TAX            ; Index it
C3/A24C:	BD6918  	LDA $1869,X    ; Item in slot
C3/A24F:	20A28A  	JSR $8AA2      ; Compute index
C3/A252:	AE3421  	LDX $2134      ; Load it
C3/A255:	BF0050D8	LDA $D85000,X  ; Properties
C3/A259:	2907    	AND #$07       ; Get class
C3/A25B:	85F6    	STA $F6        ; Memorize it
C3/A25D:	7A      	PLY            ; ...
C3/A25E:	A55F    	LDA $5F        ; Body slot
C3/A260:	C902    	CMP #$02       ; Head or body?
C3/A262:	B05A    	BCS $A2BE      ; Enable if so
C3/A264:	C901    	CMP #$01       ; L-Hand/relic 2?
C3/A266:	F02C    	BEQ $A294      ; Branch if so

Fork: For R-Hand or relic 1
C3/A268:	B92000  	LDA $0020,Y    ; L-Hand item
C3/A26B:	C9FF    	CMP #$FF       ; None?
C3/A26D:	F017    	BEQ $A286      ; Enable if so
C3/A26F:	20A28A  	JSR $8AA2      ; Compute index
C3/A272:	AE3421  	LDX $2134      ; Load it
C3/A275:	BF0050D8	LDA $D85000,X  ; Properties
C3/A279:	2907    	AND #$07       ; Get class
C3/A27B:	C903    	CMP #$03       ; Shield?
C3/A27D:	F009    	BEQ $A288      ; Branch if so
C3/A27F:	ADD811  	LDA $11D8      ; Gear effects
C3/A282:	2910    	AND #$10       ; Genji Glove?
C3/A284:	F002    	BEQ $A288      ; Branch if not
C3/A286:	38      	SEC            ; Set to enable
C3/A287:	60      	RTS

Fork: Prevent two shields or weapons
C3/A288:	BF0050D8	LDA $D85000,X  ; L-Hand's specs
C3/A28C:	2907    	AND #$07       ; Get item class
C3/A28E:	C5F6    	CMP $F6        ; Like list item?
C3/A290:	F02E    	BEQ $A2C0      ; Disable if so
C3/A292:	38      	SEC            ; Set to enable
C3/A293:	60      	RTS

Fork: For L-Hand or relic 2
C3/A294:	B91E00  	LDA $001E,Y    ; R-Hand item
C3/A297:	C9FF    	CMP #$FF       ; None?
C3/A299:	F017    	BEQ $A2B2      ; Enable if so
C3/A29B:	20A28A  	JSR $8AA2      ; Compute index
C3/A29E:	AE3421  	LDX $2134      ; Load it
C3/A2A1:	BF0050D8	LDA $D85000,X  ; Properties
C3/A2A5:	2907    	AND #$07       ; Get class
C3/A2A7:	C903    	CMP #$03       ; Shield?
C3/A2A9:	F009    	BEQ $A2B4      ; Branch if so
C3/A2AB:	ADD811  	LDA $11D8      ; Gear effects
C3/A2AE:	2910    	AND #$10       ; Genji Glove?
C3/A2B0:	F002    	BEQ $A2B4      ; Branch if not
C3/A2B2:	38      	SEC            ; Set to enable
C3/A2B3:	60      	RTS

Fork: Prevent two shields or weapons
C3/A2B4:	BF0050D8	LDA $D85000,X  ; R-Hand's specs
C3/A2B8:	2907    	AND #$07       ; Get item class
C3/A2BA:	C5F6    	CMP $F6        ; Like list item?
C3/A2BC:	F002    	BEQ $A2C0      ; Disable if so
C3/A2BE:	38      	SEC            ; Set to enable
C3/A2BF:	60      	RTS

Fork: Disable listed item
C3/A2C0:	18      	CLC            ; Set to disable
C3/A2C1:	60      	RTS

Handle D-Pad plus L and R for gear browsing
C3/A2C2:	AF899D7E	LDA $7E9D89    ; List size
C3/A2C6:	C90A    	CMP #$0A       ; Over 9 items?
C3/A2C8:	B003    	BCS $A2CD      ; Branch if so
C3/A2CA:	4C1296  	JMP $9612      ; Handle D-Pad

Fork: Scrollable list
C3/A2CD:	A905    	LDA #$05       ; List type: Gear
C3/A2CF:	852A    	STA $2A        ; Set redraw mode
C3/A2D1:	20CA1F  	JSR $1FCA      ; Handle L and R
C3/A2D4:	B003    	BCS $A2D9      ; Exit if pushed
C3/A2D6:	4C0396  	JMP $9603      ; Handle D-Pad
C3/A2D9:	60      	RTS

Initialize cursor data for list of available gear
C3/A2DA:	AF899D7E	LDA $7E9D89    ; Number of items
C3/A2DE:	F01B    	BEQ $A2FB      ; Exit if none
C3/A2E0:	C90A    	CMP #$0A       ; Over 9?
C3/A2E2:	B011    	BCS $A2F5      ; Branch if so
C3/A2E4:	20D2A5  	JSR $A5D2      ; Duplicate cursor
C3/A2E7:	644A    	STZ $4A        ; List scroll: 0
C3/A2E9:	200C96  	JSR $960C      ; Load navig data
C3/A2EC:	AF899D7E	LDA $7E9D89    ; Number of items
C3/A2F0:	8554    	STA $54        ; Set cursor limit
C3/A2F2:	4C1596  	JMP $9615      ; Relocate cursor

Fork: Scrollable list
C3/A2F5:	20D2A5  	JSR $A5D2      ; Duplicate cursor
C3/A2F8:	20FCA2  	JSR $A2FC      ; Move cursor; bar
C3/A2FB:	60      	RTS

Initialize cursor data for scrollable gear list
C3/A2FC:	644A    	STZ $4A        ; List scroll: 0
C3/A2FE:	20B809  	JSR $09B8      ; Create scrollbar
C3/A301:	C220    	REP #$20       ; 16-bit A
C3/A303:	A96000  	LDA #$0060     ; Y: 96
C3/A306:	9FCA347E	STA $7E34CA,X  ; Set scrollbar's
C3/A30A:	A90060  	LDA #$6000     ; Bar range: 60 px
C3/A30D:	8D0442  	STA $4204      ; Set dividend
C3/A310:	E220    	SEP #$20       ; 8-bit A
C3/A312:	AF899D7E	LDA $7E9D89    ; Number of items
C3/A316:	38      	SEC            ; Prepare SBC
C3/A317:	E909    	SBC #$09       ; Deduct page size
C3/A319:	8D0642  	STA $4206      ; Set divisor
C3/A31C:	EA      	NOP
C3/A31D:	EA      	NOP
C3/A31E:	EA      	NOP
C3/A31F:	EA      	NOP
C3/A320:	EA      	NOP
C3/A321:	C220    	REP #$20       ; 16-bit A
C3/A323:	AD1442  	LDA $4214      ; Quotient
C3/A326:	9F4A357E	STA $7E354A,X  ; Set bar's V-Spd
C3/A32A:	E220    	SEP #$20       ; 8-bit A
C3/A32C:	A400    	LDY $00        ; Clear Y
C3/A32E:	844F    	STY $4F        ; List col/row: 1
C3/A330:	20FD95  	JSR $95FD      ; Load navig data
C3/A333:	200696  	JSR $9606      ; Relocate cursor
C3/A336:	AF899D7E	LDA $7E9D89    ; Number of items
C3/A33A:	38      	SEC            ; Prepare SBC
C3/A33B:	E909    	SBC #$09       ; Deduct page size
C3/A33D:	855C    	STA $5C        ; Set scroll limit
C3/A33F:	A909    	LDA #$09       ; Onscreen rows: 9
C3/A341:	855A    	STA $5A        ; Set rows per page
C3/A343:	A901    	LDA #$01       ; Onscreen cols: 1
C3/A345:	855B    	STA $5B        ; Set cols per page
C3/A347:	60      	RTS

Compile compatible gear for actor's body part
C3/A348:	2019A4  	JSR $A419      ; Init list
C3/A34B:	2030A4  	JSR $A430      ; Define compat
C3/A34E:	A920    	LDA #$20       ; Palette 0
C3/A350:	8529    	STA $29        ; Color: User's
C3/A352:	A54B    	LDA $4B        ; Body part
C3/A354:	C902    	CMP #$02       ; Head?
C3/A356:	F049    	BEQ $A3A1      ; Branch if so
C3/A358:	C903    	CMP #$03       ; Armor?
C3/A35A:	F002    	BEQ $A35E      ; Branch if so
C3/A35C:	8003    	BRA $A361      ; Handle hands
C3/A35E:	4CDDA3  	JMP $A3DD      ; Handle torso

Fork: Weapons and shields
C3/A361:	A600    	LDX $00        ; Clear X...
C3/A363:	9B      	TXY            ; Item slot: 1
C3/A364:	7B      	TDC            ; Clear A
C3/A365:	B96918  	LDA $1869,Y    ; Item in slot
C3/A368:	C9FF    	CMP #$FF       ; None?
C3/A36A:	F026    	BEQ $A392      ; Skip if so
C3/A36C:	20A28A  	JSR $8AA2      ; Compute index
C3/A36F:	AE3421  	LDX $2134      ; Load it
C3/A372:	BF0050D8	LDA $D85000,X  ; Properties
C3/A376:	2907    	AND #$07       ; Get class
C3/A378:	C901    	CMP #$01       ; Weapon?
C3/A37A:	F004    	BEQ $A380      ; Branch if so
C3/A37C:	C903    	CMP #$03       ; Shield?
C3/A37E:	D012    	BNE $A392      ; Skip if not
C3/A380:	C220    	REP #$20       ; 16-bit A
C3/A382:	BF0150D8	LDA $D85001,X  ; Compatibility
C3/A386:	24E7    	BIT $E7        ; Actor can use?
C3/A388:	F008    	BEQ $A392      ; Skip if not
C3/A38A:	E220    	SEP #$20       ; 8-bit A
C3/A38C:	98      	TYA            ; Item slot
C3/A38D:	8D8021  	STA $2180      ; Add to list
C3/A390:	E6E0    	INC $E0        ; List size +1
C3/A392:	E220    	SEP #$20       ; 8-bit A
C3/A394:	C8      	INY            ; Item slot +1
C3/A395:	C0FF00  	CPY #$00FF     ; Done 255?...
C3/A398:	D0CA    	BNE $A364      ; Loop if not
C3/A39A:	A5E0    	LDA $E0        ; List size
C3/A39C:	8F899D7E	STA $7E9D89    ; Save to list
C3/A3A0:	60      	RTS

Fork: Helmet list
C3/A3A1:	A600    	LDX $00        ; Clear X...
C3/A3A3:	9B      	TXY            ; Item slot: 1
C3/A3A4:	7B      	TDC            ; Clear A
C3/A3A5:	B96918  	LDA $1869,Y    ; Item in slot
C3/A3A8:	C9FF    	CMP #$FF       ; None?
C3/A3AA:	F022    	BEQ $A3CE      ; Skip if so
C3/A3AC:	20A28A  	JSR $8AA2      ; Compute index
C3/A3AF:	AE3421  	LDX $2134      ; Load it
C3/A3B2:	BF0050D8	LDA $D85000,X  ; Properties
C3/A3B6:	2907    	AND #$07       ; Get class
C3/A3B8:	C904    	CMP #$04       ; Helmet?
C3/A3BA:	D012    	BNE $A3CE      ; Skip if not
C3/A3BC:	C220    	REP #$20       ; 16-bit A
C3/A3BE:	BF0150D8	LDA $D85001,X  ; Compatibility
C3/A3C2:	24E7    	BIT $E7        ; Actor can use?
C3/A3C4:	F008    	BEQ $A3CE      ; Skip if not
C3/A3C6:	E220    	SEP #$20       ; 8-bit A
C3/A3C8:	98      	TYA            ; Item slot
C3/A3C9:	8D8021  	STA $2180      ; Add to list
C3/A3CC:	E6E0    	INC $E0        ; List size +1
C3/A3CE:	E220    	SEP #$20       ; 8-bit A
C3/A3D0:	C8      	INY            ; Item slot +1
C3/A3D1:	C0FF00  	CPY #$00FF     ; Done 255?...
C3/A3D4:	D0CE    	BNE $A3A4      ; Loop if not
C3/A3D6:	A5E0    	LDA $E0        ; List size
C3/A3D8:	8F899D7E	STA $7E9D89    ; Save to list
C3/A3DC:	60      	RTS

Fork: Armor list
C3/A3DD:	A600    	LDX $00        ; Clear X...
C3/A3DF:	9B      	TXY            ; Item slot: 1
C3/A3E0:	7B      	TDC            ; Clear A
C3/A3E1:	B96918  	LDA $1869,Y    ; Item in slot
C3/A3E4:	C9FF    	CMP #$FF       ; None?
C3/A3E6:	F022    	BEQ $A40A      ; Skip if so
C3/A3E8:	20A28A  	JSR $8AA2      ; Compute index
C3/A3EB:	AE3421  	LDX $2134      ; Load it
C3/A3EE:	BF0050D8	LDA $D85000,X  ; Properties
C3/A3F2:	2907    	AND #$07       ; Get class
C3/A3F4:	C902    	CMP #$02       ; Armor?
C3/A3F6:	D012    	BNE $A40A      ; Skip if not
C3/A3F8:	C220    	REP #$20       ; 16-bit A
C3/A3FA:	BF0150D8	LDA $D85001,X  ; Compatibility
C3/A3FE:	24E7    	BIT $E7        ; Actor can use?
C3/A400:	F008    	BEQ $A40A      ; Skip if not
C3/A402:	E220    	SEP #$20       ; 8-bit A
C3/A404:	98      	TYA            ; Item slot
C3/A405:	8D8021  	STA $2180      ; Add to list
C3/A408:	E6E0    	INC $E0        ; List size +1
C3/A40A:	E220    	SEP #$20       ; 8-bit A
C3/A40C:	C8      	INY            ; Item slot +1
C3/A40D:	C0FF00  	CPY #$00FF     ; Done 255?...
C3/A410:	D0CE    	BNE $A3E0      ; Loop if not
C3/A412:	A5E0    	LDA $E0        ; List size
C3/A414:	8F899D7E	STA $7E9D89    ; Save to list
C3/A418:	60      	RTS

Initialize list of compatible gear
C3/A419:	A600    	LDX $00        ; Index: 0
C3/A41B:	A9FF    	LDA #$FF       ; Item slot 256
C3/A41D:	9F8A9D7E	STA $7E9D8A,X  ; Add to list
C3/A421:	E8      	INX            ; Index +1
C3/A422:	E00900  	CPX #$0009     ; Done 9 times?
C3/A425:	D0F6    	BNE $A41D      ; Loop if not
C3/A427:	A28A9D  	LDX #$9D8A     ; 7E/9D8A
C3/A42A:	8E8121  	STX $2181      ; Set WRAM LBs
C3/A42D:	64E0    	STZ $E0        ; List size: 0
C3/A42F:	60      	RTS

Defaulting to item slot 256, which was likely inaccessible at some point during
development, provides a fallback for Optimum in case the list is empty or contains
only banned items such as Cursed Shld. This introduces a bug that allows anything
to be equipped on a given body part.


Define gear compatibility for actor
C3/A430:	20E19B  	JSR $9BE1      ; Define Y
C3/A433:	7B      	TDC            ; ...
C3/A434:	B90000  	LDA $0000,Y    ; Actor
C3/A437:	0A      	ASL A          ; Double it
C3/A438:	AA      	TAX            ; Index it
C3/A439:	C220    	REP #$20       ; 16-bit A
C3/A43B:	BF56A4C3	LDA $C3A456,X  ; Compat bit
C3/A43F:	85E7    	STA $E7        ; Memorize it
C3/A441:	E220    	SEP #$20       ; 8-bit A
C3/A443:	ADD811  	LDA $11D8      ; Gear effects
C3/A446:	2920    	AND #$20       ; Merit Award?
C3/A448:	F00B    	BEQ $A455      ; Exit if not
C3/A44A:	C220    	REP #$20       ; 16-bit A
C3/A44C:	A5E7    	LDA $E7        ; Actor's bit
C3/A44E:	090080  	ORA #$8000     ; Add award's
C3/A451:	85E7    	STA $E7        ; Save changes
C3/A453:	E220    	SEP #$20       ; 8-bit A
C3/A455:	60      	RTS

Bitfield for actor slots
C3/A456:	0100    	; Terra
C3/A458:	0200    	; Locke
C3/A45A:	0400    	; Cyan
C3/A45C:	0800    	; Shadow
C3/A45E:	1000    	; Edgar
C3/A460:	2000    	; Sabin
C3/A462:	4000    	; Celes
C3/A464:	8000    	; Strago
C3/A466:	0001    	; Relm
C3/A468:	0002    	; Setzer
C3/A46A:	0004    	; Mog
C3/A46C:	0008    	; Gau
C3/A46E:	0010    	; Gogo
C3/A470:	0020    	; Umaro
C3/A472:	0040    	; Guest 1
C3/A474:	0080    	; Guest 2

Erase projected stats in Equip or Relic menu
C3/A476:	7B      	TDC            ; Clear A
C3/A477:	AA      	TAX            ; 1st: Vigor
C3/A478:	A00900  	LDY #$0009     ; Stats: 9
C3/A47B:	C220    	REP #$20       ; 16-bit A
C3/A47D:	9FBF7C7E	STA $7E7CBF,X  ; Clear hundreds
C3/A481:	E8      	INX            ; Index +1
C3/A482:	E8      	INX            ; Index +1
C3/A483:	9FBF7C7E	STA $7E7CBF,X  ; Clear tens
C3/A487:	E8      	INX            ; Index +1
C3/A488:	E8      	INX            ; Index +1
C3/A489:	9FBF7C7E	STA $7E7CBF,X  ; Clear ones
C3/A48D:	E8      	INX            ; Index +1
C3/A48E:	E8      	INX            ; Index +1
C3/A48F:	8A      	TXA            ; Tilemap ptr
C3/A490:	18      	CLC            ; Prepare ADC
C3/A491:	697A00  	ADC #$007A     ; Row +2, col -3
C3/A494:	AA      	TAX            ; Reindex it
C3/A495:	88      	DEY            ; One less stat
C3/A496:	D0E5    	BNE $A47D      ; Loop till last
C3/A498:	E220    	SEP #$20       ; 8-bit A
C3/A49A:	60      	RTS

Draw and reveal list of available gear for body part
C3/A49B:	AF899D7E	LDA $7E9D89    ; Empty list?
C3/A49F:	F02B    	BEQ $A4CC      ; Abort if so
C3/A4A1:	20788B  	JSR $8B78      ; Define $E5, $E6
C3/A4A4:	7B      	TDC            ; Clear A
C3/A4A5:	AF899D7E	LDA $7E9D89    ; List size
C3/A4A9:	C909    	CMP #$09       ; Over 8 items?
C3/A4AB:	9002    	BCC $A4AF      ; Branch if not
C3/A4AD:	A909    	LDA #$09       ; Rows left: 9
C3/A4AF:	A8      	TAY            ; Put in Y...
C3/A4B0:	5A      	PHY            ; Memorize it
C3/A4B1:	20D1A4  	JSR $A4D1      ; Draw item name
C3/A4B4:	E6E5    	INC $E5        ; List slot +1
C3/A4B6:	A5E6    	LDA $E6        ; BG1 write row
C3/A4B8:	1A      	INC A          ; Go 1 row down
C3/A4B9:	1A      	INC A          ; Go 1 row down
C3/A4BA:	291F    	AND #$1F       ; Stay in limits
C3/A4BC:	85E6    	STA $E6        ; Save changes
C3/A4BE:	7A      	PLY            ; Rows left
C3/A4BF:	88      	DEY            ; One less left
C3/A4C0:	D0EE    	BNE $A4B0      ; Loop till last
C3/A4C2:	C220    	REP #$20       ; 16-bit A
C3/A4C4:	7B      	TDC            ; BG1 H-Shift: 0
C3/A4C5:	8FD09B7E	STA $7E9BD0    ; Unhide gear list
C3/A4C9:	E220    	SEP #$20       ; 8-bit A
C3/A4CB:	60      	RTS            ; Exit
C3/A4CC:	A527    	LDA $27        ; Old menu mode
C3/A4CE:	8526    	STA $26        ; Set as current
C3/A4D0:	60      	RTS

Draw item's name and quantity for list of available gear
C3/A4D1:	2039A2  	JSR $A239      ; Actor's address
C3/A4D4:	7B      	TDC            ; Clear A
C3/A4D5:	A5E5    	LDA $E5        ; Gear list slot
C3/A4D7:	2045A2  	JSR $A245      ; Gray out item?
C3/A4DA:	B004    	BCS $A4E0      ; Branch if not
C3/A4DC:	A928    	LDA #$28       ; Color: Gray
C3/A4DE:	8002    	BRA $A4E2      ; Skip a line
C3/A4E0:	A920    	LDA #$20       ; Color: User's
C3/A4E2:	8529    	STA $29        ; Set palette
C3/A4E4:	7B      	TDC            ; Clear A
C3/A4E5:	A5E5    	LDA $E5        ; Gear list slot
C3/A4E7:	AA      	TAX            ; Index it
C3/A4E8:	BF8A9D7E	LDA $7E9D8A,X  ; Inventory slot
C3/A4EC:	A8      	TAY            ; Index it
C3/A4ED:	B96919  	LDA $1969,Y    ; Item quantity
C3/A4F0:	206305  	JSR $0563      ; Turn into text
C3/A4F3:	A5E6    	LDA $E6        ; BG1 write row
C3/A4F5:	1A      	INC A          ; Go 1 row down
C3/A4F6:	A20C00  	LDX #$000C     ; X: 12
C3/A4F9:	202088  	JSR $8820      ; Compute map ptr
C3/A4FC:	203905  	JSR $0539      ; Draw 2 digits
C3/A4FF:	A5E6    	LDA $E6        ; BG1 write row
C3/A501:	A20200  	LDX #$0002     ; X: 2
C3/A504:	202088  	JSR $8820      ; Compute map ptr
C3/A507:	C220    	REP #$20       ; 16-bit A
C3/A509:	8A      	TXA            ; ...
C3/A50A:	8F899E7E	STA $7E9E89    ; Set position
C3/A50E:	E220    	SEP #$20       ; 8-bit A
C3/A510:	7B      	TDC            ; Clear A
C3/A511:	A5E5    	LDA $E5        ; Gear list slot
C3/A513:	A8      	TAY            ; Put it in Y
C3/A514:	201AA5  	JSR $A51A      ; Load "<item>:"
C3/A517:	4CB987  	JMP $87B9      ; Draw "<item>:"

Load name of item from list of available gear, add a colon
C3/A51A:	A28B9E  	LDX #$9E8B     ; 7E/9E8B
C3/A51D:	8E8121  	STX $2181      ; Set WRAM LBs
C3/A520:	AD1242  	LDA $4212      ; PPU status
C3/A523:	2940    	AND #$40       ; H-Blank?
C3/A525:	F0F9    	BEQ $A520      ; Loop if not
C3/A527:	BB      	TYX            ; Gear list slot
C3/A528:	7B      	TDC            ; ...
C3/A529:	BF8A9D7E	LDA $7E9D8A,X  ; Inventory slot
C3/A52D:	A8      	TAY            ; Index it
C3/A52E:	B96918  	LDA $1869,Y    ; Item in slot
C3/A531:	C9FF    	CMP #$FF       ; None?
C3/A533:	F028    	BEQ $A55D      ; Blank if so
C3/A535:	8D1B21  	STA $211B      ; Set matrix A LB
C3/A538:	9C1B21  	STZ $211B      ; Clear HB
C3/A53B:	A909    	LDA #$09       ; Name data size
C3/A53D:	8D1C21  	STA $211C      ; Set matrix B
C3/A540:	8D1C21  	STA $211C      ; ...
C3/A543:	AE3421  	LDX $2134      ; Index product
C3/A546:	A00900  	LDY #$0009     ; Letters: 9
C3/A549:	BF00F7E6	LDA $E6F700,X  ; Letter
C3/A54D:	8D8021  	STA $2180      ; Add to string
C3/A550:	E8      	INX            ; Point to next
C3/A551:	88      	DEY            ; One less left
C3/A552:	D0F5    	BNE $A549      ; Loop till last
C3/A554:	A9CF    	LDA #$CF       ; Char: ":"
C3/A556:	8D8021  	STA $2180      ; Add to string
C3/A559:	9C8021  	STZ $2180      ; End string
C3/A55C:	60      	RTS

Fork: Blank item slot
C3/A55D:	A00C00  	LDY #$000C     ; Spaces: 12
C3/A560:	A9FF    	LDA #$FF       ; Space char
C3/A562:	8D8021  	STA $2180      ; Add to string
C3/A565:	88      	DEY            ; One less left
C3/A566:	D0FA    	BNE $A562      ; Loop till last
C3/A568:	9C8021  	STZ $2180      ; End string
C3/A56B:	60      	RTS

Add item to inventory
C3/A56C:	5A      	PHY            ; Save Y
C3/A56D:	85E0    	STA $E0        ; Set item to add
C3/A56F:	A400    	LDY $00        ; Item slot: 1
C3/A571:	D96918  	CMP $1869,Y    ; Slot holds it?
C3/A574:	F022    	BEQ $A598      ; Qty +1 if so
C3/A576:	C9FF    	CMP #$FF       ; Empty item?
C3/A578:	F029    	BEQ $A5A3      ; Exit if so
C3/A57A:	C8      	INY            ; Item slot +1
C3/A57B:	C00001  	CPY #$0100     ; Done all 256?
C3/A57E:	D0F1    	BNE $A571      ; Loop if not

Fork: Find an empty slot
C3/A580:	A400    	LDY $00        ; Item slot: 1
C3/A582:	B96918  	LDA $1869,Y    ; Item in slot
C3/A585:	C9FF    	CMP #$FF       ; None?
C3/A587:	F003    	BEQ $A58C      ; Replace if so
C3/A589:	C8      	INY            ; Item slot +1
C3/A58A:	80F6    	BRA $A582      ; Try next slot

Fork: Put item in empty slot
C3/A58C:	A901    	LDA #$01       ; Quantity: 1
C3/A58E:	996919  	STA $1969,Y    ; Assign to slot
C3/A591:	A5E0    	LDA $E0        ; Item to add
C3/A593:	996918  	STA $1869,Y    ; Put in slot
C3/A596:	800B    	BRA $A5A3      ; Exit

Fork: Quantity +1
C3/A598:	B96919  	LDA $1969,Y    ; Quantity owned
C3/A59B:	C963    	CMP #$63       ; 99?
C3/A59D:	F004    	BEQ $A5A3      ; Exit if so
C3/A59F:	1A      	INC A          ; Quantity +1
C3/A5A0:	996919  	STA $1969,Y    ; Save changes
C3/A5A3:	7A      	PLY            ; Restore Y
C3/A5A4:	60      	RTS

Remove item from inventory
C3/A5A5:	5A      	PHY            ; Save Y
C3/A5A6:	85E0    	STA $E0        ; ...
C3/A5A8:	A400    	LDY $00        ; Item slot: 1
C3/A5AA:	D96918  	CMP $1869,Y    ; Slot holds it?
C3/A5AD:	F008    	BEQ $A5B7      ; Branch if so
C3/A5AF:	C8      	INY            ; Item slot +1
C3/A5B0:	C00001  	CPY #$0100     ; Done all 256?
C3/A5B3:	D0F5    	BNE $A5AA      ; Loop if not
C3/A5B5:	7A      	PLY            ; Restore Y
C3/A5B6:	60      	RTS

Fork: Quantity -1
C3/A5B7:	B96919  	LDA $1969,Y    ; Quantity
C3/A5BA:	C901    	CMP #$01       ; One?
C3/A5BC:	F009    	BEQ $A5C7      ; Delete if so
C3/A5BE:	B96919  	LDA $1969,Y    ; ...
C3/A5C1:	3A      	DEC A          ; Quantity -1
C3/A5C2:	996919  	STA $1969,Y    ; Save changes
C3/A5C5:	8009    	BRA $A5D0      ; Exit

Fork: Clear item slot
C3/A5C7:	7B      	TDC            ; Clear A
C3/A5C8:	996919  	STA $1969,Y    ; Quantity: 0
C3/A5CB:	A9FF    	LDA #$FF       ; Empty item
C3/A5CD:	996918  	STA $1869,Y    ; Put in slot
C3/A5D0:	7A      	PLY            ; Restore Y
C3/A5D1:	60      	RTS

Duplicate cursor before browsing gear
C3/A5D2:	A902    	LDA #$02       ; Min slot: 16
C3/A5D4:	A0EBA5  	LDY #$A5EB     ; C3/A5EB
C3/A5D7:	20DE11  	JSR $11DE      ; Queue OAM fn
C3/A5DA:	C220    	REP #$20       ; 16-bit A
C3/A5DC:	A555    	LDA $55        ; Cursor's X
C3/A5DE:	9FCA337E	STA $7E33CA,X  ; Set dupe's
C3/A5E2:	A557    	LDA $57        ; Cursor's Y
C3/A5E4:	9F4A347E	STA $7E344A,X  ; Set dupe's
C3/A5E8:	E220    	SEP #$20       ; 8-bit A
C3/A5EA:	60      	RTS

Update cursor indicating selected gear slot
C3/A5EB:	AA      	TAX            ; Index mode
C3/A5EC:	7CEFA5  	JMP ($A5EF,X)  ; Handle mode

Jump table for the above
C3/A5EF:	F3A5    	; Initialize cursor
C3/A5F1:	0EA6    	; Sustain cursor

Mode 0: Initialize cursor
C3/A5F3:	A62D    	LDX $2D        ; Queue index
C3/A5F5:	A901    	LDA #$01       ; Dupe: Sustain
C3/A5F7:	0446    	TSB $46        ; Set menu flag
C3/A5F9:	C220    	REP #$20       ; 16-bit A
C3/A5FB:	A91209  	LDA #$0912     ; Anim table ptr
C3/A5FE:	9DC932  	STA $32C9,X    ; Set sprite's
C3/A601:	E220    	SEP #$20       ; 8-bit A
C3/A603:	A9C3    	LDA #$C3       ; Bank: C3
C3/A605:	9DCA35  	STA $35CA,X    ; Set ptr HB
C3/A608:	207112  	JSR $1271      ; Set pose timer
C3/A60B:	FE4936  	INC $3649,X    ; Mode +1

Mode 1: Sustain cursor
C3/A60E:	A546    	LDA $46        ; Menu flags
C3/A610:	8901    	BIT #$01       ; Remove dupe?
C3/A612:	F007    	BEQ $A61B      ; Delete if so
C3/A614:	A62D    	LDX $2D        ; Queue index
C3/A616:	208C12  	JSR $128C      ; Define OAM
C3/A619:	38      	SEC            ; Set to requeue
C3/A61A:	60      	RTS            ; Exit
C3/A61B:	18      	CLC            ; Set to dequeue
C3/A61C:	60      	RTS

Set to upload text tilemaps for Equip menu
C3/A61D:	2031A6  	JSR $A631      ; Queue BG3 upload
C3/A620:	8023    	BRA $A645      ; Queue BG1 upload

Set to upload text tilemaps for Relic menu
C3/A622:	2045A6  	JSR $A645      ; Queue BG1 upload
C3/A625:	AD1E02  	LDA $021E      ; Frame counter
C3/A628:	2901    	AND #$01       ; Odd value?
C3/A62A:	F002    	BEQ $A62E      ; Favor desc if so
C3/A62C:	8003    	BRA $A631      ; Queue stats upload
C3/A62E:	4C01B3  	JMP $B301      ; Queue desc upload

Set to upload BG3 tilemaps A and upper B
C3/A631:	A00040  	LDY #$4000     ; $4000
C3/A634:	841B    	STY $1B        ; Set VRAM ptr
C3/A636:	A04978  	LDY #$7849     ; 7E/7849
C3/A639:	841D    	STY $1D        ; Set src LBs
C3/A63B:	A97E    	LDA #$7E       ; Bank: 7E
C3/A63D:	851F    	STA $1F        ; Set src HB
C3/A63F:	A08008  	LDY #$0880     ; Bytes: 2176
C3/A642:	8419    	STY $19        ; Set data size
C3/A644:	60      	RTS

Set to upload BG1 tilemap A
C3/A645:	A00000  	LDY #$0000     ; $0000
C3/A648:	8414    	STY $14        ; Set VRAM ptr
C3/A64A:	A04938  	LDY #$3849     ; 7E/3849
C3/A64D:	8416    	STY $16        ; Set src LBs
C3/A64F:	A97E    	LDA #$7E       ; Bank: 7E
C3/A651:	8518    	STA $18        ; Set src HB
C3/A653:	A00008  	LDY #$0800     ; Bytes: 2048
C3/A656:	8412    	STY $12        ; Set data size
C3/A658:	60      	RTS

58: Initialize Relic menu
C3/A659:	205EA6  	JSR $A65E      ; Init variables
C3/A65C:	801F    	BRA $A67D      ; Draw menu, etc.

Initialize variables for Relic menu
C3/A65E:	20F735  	JSR $35F7      ; Reset/Stop stuff
C3/A661:	209C71  	JSR $719C      ; Set Win1 bounds
C3/A664:	644A    	STZ $4A        ; List scroll: 0
C3/A666:	6449    	STZ $49        ; Top BG1 WR row: 1
C3/A668:	A910    	LDA #$10       ; Reset/Stop desc
C3/A66A:	0445    	TSB $45        ; Set menu flag
C3/A66C:	6499    	STZ $99        ; Unmark Reequip
C3/A66E:	20FF1B  	JSR $1BFF      ; Queue desc anim
C3/A671:	20A59C  	JSR $9CA5      ; Set to shift text
C3/A674:	203296  	JSR $9632      ; Load navig data
C3/A677:	203B96  	JSR $963B      ; Relocate cursor
C3/A67A:	4C3308  	JMP $0833      ; Queue cursor OAM

Draw Relic menu, memorize original relics, etc.
C3/A67D:	201398  	JSR $9813      ; Draw menu, etc.
C3/A680:	A901    	LDA #$01       ; C3/1DE4
C3/A682:	8526    	STA $26        ; Next: Fade-in
C3/A684:	A959    	LDA #$59       ; C3/A6C6
C3/A686:	8527    	STA $27        ; Queue: Option list
C3/A688:	4C0936  	JMP $3609      ; BRT:1 + NMI

79: Swap actor in Relic menu, retain Equip mode
C3/A68B:	20A7A6  	JSR $A6A7      ; Draw menu, etc.
C3/A68E:	203E9E  	JSR $9E3E      ; Draw blue "EQUIP"
C3/A691:	20B6A6  	JSR $A6B6      ; Cursor & Fade-in
C3/A694:	A95A    	LDA #$5A       ; C3/A80B
C3/A696:	4CC1A6  	JMP $A6C1      ; Queue: Slot list

7A: Swap actor in Relic menu, retain Remove mode
C3/A699:	20A7A6  	JSR $A6A7      ; Draw menu, etc.
C3/A69C:	20459E  	JSR $9E45      ; Draw blue "REMOVE"
C3/A69F:	20B6A6  	JSR $A6B6      ; Cursor & Fade-in
C3/A6A2:	A95C    	LDA #$5C       ; C3/A918
C3/A6A4:	4CC1A6  	JMP $A6C1      ; Queue: Slot list

Reset Relic menu for either of the above
C3/A6A7:	205EA6  	JSR $A65E      ; Init variables
C3/A6AA:	201398  	JSR $9813      ; Draw menu, etc.
C3/A6AD:	2045A6  	JSR $A645      ; Queue BG1 upload
C3/A6B0:	2031A6  	JSR $A631      ; Queue BG3 upload
C3/A6B3:	4C039E  	JMP $9E03      ; Switch windows

Put cursor on first relic slot, trigger fade-in
C3/A6B6:	204A96  	JSR $964A      ; Load navig data
C3/A6B9:	205396  	JSR $9653      ; Relocate cursor
C3/A6BC:	A901    	LDA #$01       ; C3/1DE4
C3/A6BE:	8526    	STA $26        ; Next: Fade-in
C3/A6C0:	60      	RTS

Queue Equip or Remove mode after actor swap in Relic menu
C3/A6C1:	8527    	STA $27        ; Set queued command
C3/A6C3:	4C0936  	JMP $3609      ; BRT:1 + NMI

59: Handle Relic menu options
C3/A6C6:	2031A6  	JSR $A631      ; Queue BG3 upload
C3/A6C9:	20FB9D  	JSR $9DFB      ; Switch windows
C3/A6CC:	200598  	JSR $9805      ; Draw options
C3/A6CF:	203896  	JSR $9638      ; Handle D-Pad
C3/A6D2:	A508    	LDA $08        ; No-autofire keys
C3/A6D4:	8980    	BIT #$80       ; Pushing A?
C3/A6D6:	F006    	BEQ $A6DE      ; Branch if not
C3/A6D8:	201D0F  	JSR $0F1D      ; Sound: Click
C3/A6DB:	4CDDA7  	JMP $A7DD      ; Handle choice

Fork: Handle B
C3/A6DE:	A509    	LDA $09        ; No-autofire keys
C3/A6E0:	8980    	BIT #$80       ; Pushing B?
C3/A6E2:	F006    	BEQ $A6EA      ; Branch if not
C3/A6E4:	20140F  	JSR $0F14      ; Sound: Cursor
C3/A6E7:	20F9A6  	JSR $A6F9      ; Handle Reequip

Fork: Handle L and R, prepare for menu reset
C3/A6EA:	20F4A6  	JSR $A6F4      ; Plan Reequip pos
C3/A6ED:	A958    	LDA #$58       ; C3/A659
C3/A6EF:	85E0    	STA $E0        ; Set init command
C3/A6F1:	4C8820  	JMP $2088      ; Handle L and R

Memorize menu mode for positioning Reequip warning
C3/A6F4:	A526    	LDA $26        ; Menu mode
C3/A6F6:	85D1    	STA $D1        ; Save for Reequip
C3/A6F8:	60      	RTS

Test Reequip activation, select menu commands accordingly
C3/A6F9:	20B998  	JSR $98B9      ; Get gear effects
C3/A6FC:	20E19B  	JSR $9BE1      ; Define Y
C3/A6FF:	B90000  	LDA $0000,Y    ; Actor
C3/A702:	C90D    	CMP #$0D       ; Umaro?
C3/A704:	F007    	BEQ $A70D      ; Branch if so
C3/A706:	206AA7  	JSR $A76A      ; Test Reequip
C3/A709:	A599    	LDA $99        ; Triggered it?
C3/A70B:	D007    	BNE $A714      ; Branch if so
C3/A70D:	A904    	LDA #$04       ; C3/1AF0
C3/A70F:	8527    	STA $27        ; Queue main menu
C3/A711:	6426    	STZ $26        ; Next: Fade-out
C3/A713:	60      	RTS

Fork: Triggered Reequip
C3/A714:	A906    	LDA #$06       ; Main cursor: Off
C3/A716:	1446    	TRB $46        ; Set menu flag
C3/A718:	2045A6  	JSR $A645      ; Queue BG1 upload
C3/A71B:	2031A6  	JSR $A631      ; Queue BG3 upload
C3/A71E:	202AA7  	JSR $A72A      ; Handle text, etc.
C3/A721:	A9F0    	LDA #$F0       ; Frames: 240
C3/A723:	8522    	STA $22        ; Set fade delay
C3/A725:	A96C    	LDA #$6C       ; C3/A7BF
C3/A727:	8526    	STA $26        ; Next: Late fade
C3/A729:	60      	RTS

Handle Reequip activation
C3/A72A:	204C9E  	JSR $9E4C      ; Erase top text
C3/A72D:	A033AC  	LDY #$AC33     ; Text pointer
C3/A730:	202603  	JSR $0326      ; Draw warning
C3/A733:	AD4E1D  	LDA $1D4E      ; Game options
C3/A736:	2910    	AND #$10       ; Optimum mode?
C3/A738:	F018    	BEQ $A752      ; Branch if so

Fork: Empty mode
C3/A73A:	A96E    	LDA #$6E       ; C3/1C8C
C3/A73C:	8527    	STA $27        ; Queue removal
C3/A73E:	A5D1    	LDA $D1        ; Menu mode
C3/A740:	C959    	CMP #$59       ; Relic options?
C3/A742:	F007    	BEQ $A74B      ; Branch if so
C3/A744:	A01BAC  	LDY #$AC1B     ; Text pointer
C3/A747:	202603  	JSR $0326      ; Draw "Empty"
C3/A74A:	60      	RTS

Fork: Draw "Empty" in option window
C3/A74B:	A003AC  	LDY #$AC03     ; Text pointer
C3/A74E:	202603  	JSR $0326      ; Draw "Empty"
C3/A751:	60      	RTS

Fork: Optimum mode
C3/A752:	A96D    	LDA #$6D       ; C3/1C80
C3/A754:	8527    	STA $27        ; Queue optimizing
C3/A756:	A5D1    	LDA $D1        ; Menu mode
C3/A758:	C959    	CMP #$59       ; Relic options?
C3/A75A:	F007    	BEQ $A763      ; Branch if so
C3/A75C:	A026AC  	LDY #$AC26     ; Text pointer
C3/A75F:	202603  	JSR $0326      ; Draw "Optimum"
C3/A762:	60      	RTS

Fork: Draw "Optimum" in option window
C3/A763:	A00EAC  	LDY #$AC0E     ; Text pointer
C3/A766:	202603  	JSR $0326      ; Draw "Optimum"
C3/A769:	60      	RTS

Determine whether to trigger Reequip in Relic menu
C3/A76A:	20E19B  	JSR $9BE1      ; Define Y...
C3/A76D:	B92300  	LDA $0023,Y    ; Relic 1
C3/A770:	C5B0    	CMP $B0        ; Unchanged?
C3/A772:	D009    	BNE $A77D      ; Branch if not
C3/A774:	B92400  	LDA $0024,Y    ; Relic 2
C3/A777:	C5B1    	CMP $B1        ; Unchanged?
C3/A779:	D002    	BNE $A77D      ; Branch if not
C3/A77B:	803A    	BRA $A7B7      ; Reequip: No

Fork: Compare old and new relics
C3/A77D:	A5B0    	LDA $B0        ; Old relic 1
C3/A77F:	C9D1    	CMP #$D1       ; Genji Glove?
C3/A781:	F037    	BEQ $A7BA      ; Trigger if so
C3/A783:	C9D0    	CMP #$D0       ; Gauntlet?
C3/A785:	F033    	BEQ $A7BA      ; Trigger if so
C3/A787:	C9DA    	CMP #$DA       ; Merit Award?
C3/A789:	F02F    	BEQ $A7BA      ; Trigger if so
C3/A78B:	A5B1    	LDA $B1        ; Old relic 2
C3/A78D:	C9D1    	CMP #$D1       ; Genji Glove?
C3/A78F:	F029    	BEQ $A7BA      ; Trigger if so
C3/A791:	C9D0    	CMP #$D0       ; Gauntlet?
C3/A793:	F025    	BEQ $A7BA      ; Trigger if so
C3/A795:	C9DA    	CMP #$DA       ; Merit Award?
C3/A797:	F021    	BEQ $A7BA      ; Trigger if so
C3/A799:	B92300  	LDA $0023,Y    ; Relic 1
C3/A79C:	C9D1    	CMP #$D1       ; Genji Glove?
C3/A79E:	F01A    	BEQ $A7BA      ; Trigger if so
C3/A7A0:	C9D0    	CMP #$D0       ; Gauntlet?
C3/A7A2:	F016    	BEQ $A7BA      ; Trigger if so
C3/A7A4:	C9DA    	CMP #$DA       ; Merit Award?
C3/A7A6:	F012    	BEQ $A7BA      ; Trigger if so
C3/A7A8:	B92400  	LDA $0024,Y    ; Relic 2
C3/A7AB:	C9D1    	CMP #$D1       ; Genji Glove?
C3/A7AD:	F00B    	BEQ $A7BA      ; Trigger if so
C3/A7AF:	C9D0    	CMP #$D0       ; Gauntlet?
C3/A7B1:	F007    	BEQ $A7BA      ; Trigger if so
C3/A7B3:	C9DA    	CMP #$DA       ; Merit Award?
C3/A7B5:	F003    	BEQ $A7BA      ; Trigger if so
C3/A7B7:	6499    	STZ $99        ; Reequip: No
C3/A7B9:	60      	RTS

Fork: Set to open Equip menu
C3/A7BA:	A901    	LDA #$01       ; Reequip: Yes
C3/A7BC:	8599    	STA $99        ; Set indicator
C3/A7BE:	60      	RTS

6C: Handle delayed fade-out for Reequip
C3/A7BF:	A522    	LDA $22        ; Delay expired?
C3/A7C1:	D003    	BNE $A7C6      ; Branch if not
C3/A7C3:	6426    	STZ $26        ; Next: Fade-out
C3/A7C5:	60      	RTS            ; Exit
C3/A7C6:	C622    	DEC $22        ; Timer -1
C3/A7C8:	A508    	LDA $08        ; No-autofire keys
C3/A7CA:	8910    	BIT #$10       ; Pushing R?
C3/A7CC:	D00C    	BNE $A7DA      ; Fade if so
C3/A7CE:	A508    	LDA $08        ; ...
C3/A7D0:	8920    	BIT #$20       ; Pushing L?
C3/A7D2:	D006    	BNE $A7DA      ; Fade if so
C3/A7D4:	A509    	LDA $09        ; No-autofire keys
C3/A7D6:	8980    	BIT #$80       ; Pushing B?
C3/A7D8:	F002    	BEQ $A7DC      ; Exit if not
C3/A7DA:	6426    	STZ $26        ; Next: Fade-out
C3/A7DC:	60      	RTS

Handle selected option in Relic menu
C3/A7DD:	7B      	TDC            ; Clear A
C3/A7DE:	A54B    	LDA $4B        ; Cursor slot
C3/A7E0:	0A      	ASL A          ; Double it
C3/A7E1:	AA      	TAX            ; Index it
C3/A7E2:	7CE5A7  	JMP ($A7E5,X)  ; Handle option

Jump table for the above
C3/A7E5:	E9A7    	; EQUIP
C3/A7E7:	FAA7    	; REMOVE

Handle "EQUIP" selection in Relic menu
C3/A7E9:	20039E  	JSR $9E03      ; Switch windows
C3/A7EC:	203E9E  	JSR $9E3E      ; Draw blue "EQUIP"
C3/A7EF:	204A96  	JSR $964A      ; Load navig data
C3/A7F2:	205396  	JSR $9653      ; Relocate cursor
C3/A7F5:	A95A    	LDA #$5A       ; C3/A80B
C3/A7F7:	8526    	STA $26        ; Next: Slot list
C3/A7F9:	60      	RTS

Handle "REMOVE" selection in Relic menu
C3/A7FA:	20039E  	JSR $9E03      ; Switch windows
C3/A7FD:	20459E  	JSR $9E45      ; Draw blue "REMOVE"
C3/A800:	204A96  	JSR $964A      ; Load navig data
C3/A803:	205396  	JSR $9653      ; Relocate cursor
C3/A806:	A95C    	LDA #$5C       ; C3/A918
C3/A808:	8526    	STA $26        ; Next: Slot list
C3/A80A:	60      	RTS

5A: Handle selection of relic slot to fill
C3/A80B:	2022A6  	JSR $A622      ; Queue text upload
C3/A80E:	205096  	JSR $9650      ; Handle D-Pad
C3/A811:	A508    	LDA $08        ; No-autofire keys
C3/A813:	8980    	BIT #$80       ; Pushing A?
C3/A815:	F02A    	BEQ $A841      ; Branch if not
C3/A817:	201D0F  	JSR $0F1D      ; Sound: Click
C3/A81A:	A54E    	LDA $4E        ; Cursor row
C3/A81C:	855F    	STA $5F        ; Set body slot
C3/A81E:	A95B    	LDA #$5B       ; C3/A8A5
C3/A820:	8526    	STA $26        ; Next: Relic list
C3/A822:	205FA8  	JSR $A85F      ; Get valid items
C3/A825:	205EA9  	JSR $A95E      ; Sort by Defense
C3/A828:	20DAA2  	JSR $A2DA      ; Cursor & Scrollbar
C3/A82B:	A95A    	LDA #$5A       ; Return here if..
C3/A82D:	8527    	STA $27        ; ..list is empty
C3/A82F:	20A971  	JSR $71A9      ; Clear BG1 map A
C3/A832:	20D313  	JSR $13D3      ; Refresh screen
C3/A835:	209BA4  	JSR $A49B      ; Draw item list
C3/A838:	201C9A  	JSR $9A1C      ; Draw stat preview
C3/A83B:	2031A6  	JSR $A631      ; Queue BG3 upload
C3/A83E:	4CD313  	JMP $13D3      ; Refresh screen

Fork: Handle B
C3/A841:	A509    	LDA $09        ; No-autofire keys
C3/A843:	8980    	BIT #$80       ; Pushing B?
C3/A845:	F00E    	BEQ $A855      ; Branch if not
C3/A847:	20140F  	JSR $0F14      ; Sound: Cursor
C3/A84A:	203296  	JSR $9632      ; Load navig data
C3/A84D:	203B96  	JSR $963B      ; Relocate cursor
C3/A850:	A959    	LDA #$59       ; C3/A6C6
C3/A852:	8526    	STA $26        ; Next: Option list
C3/A854:	60      	RTS

Fork: Handle L and R, prepare for menu reset
C3/A855:	20F4A6  	JSR $A6F4      ; Plan Reequip pos
C3/A858:	A979    	LDA #$79       ; C3/A68B
C3/A85A:	85E0    	STA $E0        ; Set init command
C3/A85C:	4C8820  	JMP $2088      ; Handle L and R

Compile compatible relics
C3/A85F:	2019A4  	JSR $A419      ; Init list
C3/A862:	2030A4  	JSR $A430      ; Define compat
C3/A865:	A920    	LDA #$20       ; Palette 0
C3/A867:	8529    	STA $29        ; Color: User's
C3/A869:	A600    	LDX $00        ; Clear X...
C3/A86B:	9B      	TXY            ; Item slot: 1
C3/A86C:	7B      	TDC            ; Clear A
C3/A86D:	B96918  	LDA $1869,Y    ; Item in slot
C3/A870:	C9FF    	CMP #$FF       ; None?
C3/A872:	F022    	BEQ $A896      ; Skip if so
C3/A874:	20A28A  	JSR $8AA2      ; Compute index
C3/A877:	AE3421  	LDX $2134      ; Load it
C3/A87A:	BF0050D8	LDA $D85000,X  ; Properties
C3/A87E:	2907    	AND #$07       ; Get class
C3/A880:	C905    	CMP #$05       ; Relic?
C3/A882:	D012    	BNE $A896      ; Skip if not
C3/A884:	C220    	REP #$20       ; 16-bit A
C3/A886:	BF0150D8	LDA $D85001,X  ; Compatibility
C3/A88A:	24E7    	BIT $E7        ; Actor can use?
C3/A88C:	F008    	BEQ $A896      ; Skip if not
C3/A88E:	E220    	SEP #$20       ; 8-bit A
C3/A890:	98      	TYA            ; Item slot
C3/A891:	8D8021  	STA $2180      ; Add to list
C3/A894:	E6E0    	INC $E0        ; List size +1
C3/A896:	E220    	SEP #$20       ; 8-bit A
C3/A898:	C8      	INY            ; Item slot +1
C3/A899:	C0FF00  	CPY #$00FF     ; Done 255?...
C3/A89C:	D0CE    	BNE $A86C      ; Loop if not
C3/A89E:	A5E0    	LDA $E0        ; List size
C3/A8A0:	8F899D7E	STA $7E9D89    ; Save to list
C3/A8A4:	60      	RTS

5B: Handle relic browsing
C3/A8A5:	A910    	LDA #$10       ; Description: On
C3/A8A7:	1445    	TRB $45        ; Set menu flag
C3/A8A9:	2022A6  	JSR $A622      ; Queue text upload
C3/A8AC:	20C2A2  	JSR $A2C2      ; Handle navigation
C3/A8AF:	201C9A  	JSR $9A1C      ; Draw stat preview
C3/A8B2:	20E6A9  	JSR $A9E6      ; Load description

Fork: Handle A
C3/A8B5:	A508    	LDA $08        ; No-autofire keys
C3/A8B7:	8980    	BIT #$80       ; Pushing A?
C3/A8B9:	F02F    	BEQ $A8EA      ; Branch if not
C3/A8BB:	201D0F  	JSR $0F1D      ; Sound: Click
C3/A8BE:	20E19B  	JSR $9BE1      ; Actor's address
C3/A8C1:	C221    	REP #$21       ; 16-bit A; C-
C3/A8C3:	98      	TYA            ; Move it to A
C3/A8C4:	E220    	SEP #$20       ; 8-bit A
C3/A8C6:	655F    	ADC $5F        ; Add relic slot
C3/A8C8:	A8      	TAY            ; Index sum
C3/A8C9:	B92300  	LDA $0023,Y    ; Relic to unequip
C3/A8CC:	C9FF    	CMP #$FF       ; None?
C3/A8CE:	F003    	BEQ $A8D3      ; Branch if so
C3/A8D0:	206CA5  	JSR $A56C      ; Put in stock
C3/A8D3:	7B      	TDC            ; Clear A
C3/A8D4:	A54B    	LDA $4B        ; Gear list slot
C3/A8D6:	AA      	TAX            ; Index it
C3/A8D7:	BF8A9D7E	LDA $7E9D8A,X  ; Inventory slot
C3/A8DB:	AA      	TAX            ; Index it
C3/A8DC:	BD6918  	LDA $1869,X    ; Selected item
C3/A8DF:	992300  	STA $0023,Y    ; Equip on actor
C3/A8E2:	20A5A5  	JSR $A5A5      ; Reduce stock
C3/A8E5:	20DA98  	JSR $98DA      ; Draw info; status
C3/A8E8:	8009    	BRA $A8F3      ; Exit list

Fork: Handle B
C3/A8EA:	A509    	LDA $09        ; No-autofire keys
C3/A8EC:	8980    	BIT #$80       ; Pushing B?
C3/A8EE:	F027    	BEQ $A917      ; Exit if not
C3/A8F0:	20140F  	JSR $0F14      ; Sound: Cursor
C3/A8F3:	A910    	LDA #$10       ; Reset/Stop desc
C3/A8F5:	0445    	TSB $45        ; Set menu flag
C3/A8F7:	2076A4  	JSR $A476      ; Clear stat preview
C3/A8FA:	C220    	REP #$20       ; 16-bit A
C3/A8FC:	A90001  	LDA #$0100     ; BG1 H-Shift: 256
C3/A8FF:	8FD09B7E	STA $7E9BD0    ; Hide gear list
C3/A903:	E220    	SEP #$20       ; 8-bit A
C3/A905:	A9C1    	LDA #$C1       ; Top cursor: Off
C3/A907:	1446    	TRB $46        ; Scrollbar: Off
C3/A909:	204A96  	JSR $964A      ; Load navig data
C3/A90C:	A55F    	LDA $5F        ; Former position
C3/A90E:	854E    	STA $4E        ; Set cursor row
C3/A910:	205396  	JSR $9653      ; Relocate cursor
C3/A913:	A95A    	LDA #$5A       ; C3/A80B
C3/A915:	8526    	STA $26        ; Next: Slot list
C3/A917:	60      	RTS

5C: Handle relic removal
C3/A918:	2031A6  	JSR $A631      ; Queue BG3 upload
C3/A91B:	205096  	JSR $9650      ; Handle D-Pad
C3/A91E:	A508    	LDA $08        ; No-autofire keys
C3/A920:	8980    	BIT #$80       ; Pushing A?
C3/A922:	F01C    	BEQ $A940      ; Branch if not
C3/A924:	201D0F  	JSR $0F1D      ; Sound: Click
C3/A927:	20E19B  	JSR $9BE1      ; Actor's address
C3/A92A:	C221    	REP #$21       ; 16-bit A; C-
C3/A92C:	98      	TYA            ; Move it to A
C3/A92D:	E220    	SEP #$20       ; 8-bit A
C3/A92F:	654B    	ADC $4B        ; Add cursor slot
C3/A931:	A8      	TAY            ; Index sum
C3/A932:	B92300  	LDA $0023,Y    ; Relic worn
C3/A935:	206CA5  	JSR $A56C      ; Put in stock
C3/A938:	A9FF    	LDA #$FF       ; Empty item
C3/A93A:	992300  	STA $0023,Y    ; Clear relic worn
C3/A93D:	20DA98  	JSR $98DA      ; Draw info; status

Fork: Handle B
C3/A940:	A509    	LDA $09        ; No-autofire keys
C3/A942:	8980    	BIT #$80       ; Pushing B?
C3/A944:	F00E    	BEQ $A954      ; Branch if not
C3/A946:	20140F  	JSR $0F14      ; Sound: Cursor
C3/A949:	203296  	JSR $9632      ; Load navig data
C3/A94C:	203B96  	JSR $963B      ; Relocate cursor
C3/A94F:	A959    	LDA #$59       ; C3/A6C6
C3/A951:	8526    	STA $26        ; Next: Option list
C3/A953:	60      	RTS

Fork: Handle L and R, prepare for menu reset
C3/A954:	20F4A6  	JSR $A6F4      ; Plan Reequip pos
C3/A957:	A97A    	LDA #$7A       ; C3/A699
C3/A959:	85E0    	STA $E0        ; Set init command
C3/A95B:	4C8820  	JMP $2088      ; Handle L and R

Sort compatible gear by power after loading power ratings
C3/A95E:	A28DAC  	LDX #$AC8D     ; 7E/AC8D
C3/A961:	8E8121  	STX $2181      ; Set WRAM LBs
C3/A964:	AF899D7E	LDA $7E9D89    ; List size
C3/A968:	F02A    	BEQ $A994      ; Exit if 0
C3/A96A:	C901    	CMP #$01       ; One item?
C3/A96C:	F026    	BEQ $A994      ; Exit if so
C3/A96E:	85E7    	STA $E7        ; Memorize it
C3/A970:	64E8    	STZ $E8        ; Clear HB
C3/A972:	7B      	TDC            ; Clear A
C3/A973:	AA      	TAX            ; Gear slot: 1
C3/A974:	A8      	TAY            ; ...
C3/A975:	BF8A9D7E	LDA $7E9D8A,X  ; Inventory slot
C3/A979:	DA      	PHX            ; Save gear slot
C3/A97A:	A8      	TAY            ; Index former
C3/A97B:	B96918  	LDA $1869,Y    ; Item in slot
C3/A97E:	20A28A  	JSR $8AA2      ; Compute index
C3/A981:	AE3421  	LDX $2134      ; Load it
C3/A984:	BF1450D8	LDA $D85014,X  ; Item's power
C3/A988:	8D8021  	STA $2180      ; Add to list
C3/A98B:	FA      	PLX            ; Gear slot
C3/A98C:	E8      	INX            ; Gear slot +1
C3/A98D:	E4E7    	CPX $E7        ; End of list?
C3/A98F:	D0E4    	BNE $A975      ; Loop if not
C3/A991:	2095A9  	JSR $A995      ; Sort list
C3/A994:	60      	RTS

Sort list of compatible gear by power
C3/A995:	C6E7    	DEC $E7        ; List size -1
C3/A997:	8B      	PHB            ; Save DB
C3/A998:	A97E    	LDA #$7E       ; Bank: 7E
C3/A99A:	48      	PHA            ; Put on stack
C3/A99B:	AB      	PLB            ; Set DB to 7E
C3/A99C:	7B      	TDC            ; Clear A
C3/A99D:	A8      	TAY            ; Items done: 0
C3/A99E:	7B      	TDC            ; Clear A
C3/A99F:	AA      	TAX            ; List slot: 1
C3/A9A0:	BD8DAC  	LDA $AC8D,X    ; Item's power
C3/A9A3:	DD8EAC  	CMP $AC8E,X    ; Next is worse?
C3/A9A6:	B01D    	BCS $A9C5      ; Skip if not
C3/A9A8:	85E0    	STA $E0        ; Memorize it
C3/A9AA:	BD8A9D  	LDA $9D8A,X    ; Item number A
C3/A9AD:	85E1    	STA $E1        ; Memorize it
C3/A9AF:	BD8EAC  	LDA $AC8E,X    ; Item power B
C3/A9B2:	9D8DAC  	STA $AC8D,X    ; Replace A's
C3/A9B5:	BD8B9D  	LDA $9D8B,X    ; Item number B
C3/A9B8:	9D8A9D  	STA $9D8A,X    ; Replace A's
C3/A9BB:	A5E0    	LDA $E0        ; Item power A
C3/A9BD:	9D8EAC  	STA $AC8E,X    ; Replace B's
C3/A9C0:	A5E1    	LDA $E1        ; Item number A
C3/A9C2:	9D8B9D  	STA $9D8B,X    ; Replace B's
C3/A9C5:	E8      	INX            ; List slot +1
C3/A9C6:	E4E7    	CPX $E7        ; End of list?
C3/A9C8:	D0D6    	BNE $A9A0      ; Loop if not
C3/A9CA:	C8      	INY            ; Items done +1
C3/A9CB:	C4E7    	CPY $E7        ; Fully sorted?
C3/A9CD:	D0CF    	BNE $A99E      ; Loop if not
C3/A9CF:	AB      	PLB            ; Restore DB
C3/A9D0:	60      	RTS

Load item description for equipped relic (unused)
C3/A9D1:	20898A  	JSR $8A89      ; Set desc ptrs
C3/A9D4:	20E19B  	JSR $9BE1      ; Define Y
C3/A9D7:	A54B    	LDA $4B        ; On "Relic 1"?
C3/A9D9:	D005    	BNE $A9E0      ; Branch if not
C3/A9DB:	B92300  	LDA $0023,Y    ; Relic 1
C3/A9DE:	8003    	BRA $A9E3      ; Skip a line
C3/A9E0:	B92400  	LDA $0024,Y    ; Relic 2
C3/A9E3:	4C955D  	JMP $5D95      ; Load description

Load item description for relic browsing
C3/A9E6:	20898A  	JSR $8A89      ; Set desc ptrs
C3/A9E9:	7B      	TDC            ; Clear A
C3/A9EA:	A54B    	LDA $4B        ; Gear list slot
C3/A9EC:	AA      	TAX            ; Index it
C3/A9ED:	BF8A9D7E	LDA $7E9D8A,X  ; Inventory slot
C3/A9F1:	AA      	TAX            ; Index it
C3/A9F2:	BD6918  	LDA $1869,X    ; Item in slot
C3/A9F5:	4C955D  	JMP $5D95      ; Load description

Text pointers for party gear overview
C3/A9F8:	28AA    	; R-hand
C3/A9FA:	2DAA    	; L-hand
C3/A9FC:	33AA    	; Head
C3/A9FE:	39AA    	; Body
C3/AA00:	3FAA    	; Relic 1
C3/AA02:	45AA    	; Relic 2
C3/AA04:	4BAA    	; R-hand
C3/AA06:	50AA    	; L-hand
C3/AA08:	56AA    	; Head
C3/AA0A:	5CAA    	; Body
C3/AA0C:	62AA    	; Relic 1
C3/AA0E:	68AA    	; Relic 2
C3/AA10:	6EAA    	; R-hand
C3/AA12:	73AA    	; L-hand
C3/AA14:	79AA    	; Head
C3/AA16:	7FAA    	; Body
C3/AA18:	85AA    	; Relic 1
C3/AA1A:	8BAA    	; Relic 2
C3/AA1C:	91AA    	; R-hand
C3/AA1E:	96AA    	; L-hand
C3/AA20:	9CAA    	; Head
C3/AA22:	A2AA    	; Body
C3/AA24:	A8AA    	; Relic 1
C3/AA26:	AEAA    	; Relic 2

Positioned party gear overview text for member 1
C3/AA28:	4F39 9F2D00     ; R-hand
C3/AA2D:	6B39 633FA900   ; L-hand
C3/AA33:	CF39 8B7F9D00   ; Head
C3/AA39:	EB39 6BA73F00   ; Body
C3/AA3F:	4F3A 8A6E5400   ; Relic 1
C3/AA45:	6B3A 8A6E5500   ; Relic 2

Positioned party gear overview text for member 2
C3/AA4B:	4F3B 9F2D00     ; R-hand
C3/AA50:	6B3B 633FA900   ; L-hand
C3/AA56:	CF3B 8B7F9D00   ; Head
C3/AA5C:	EB3B 6BA73F00   ; Body
C3/AA62:	4F3C 8A6E5400   ; Relic 1
C3/AA68:	6B3C 8A6E5500   ; Relic 2

Positioned party gear overview text for member 3
C3/AA6E:	4F3D 9F2D00     ; R-hand
C3/AA73:	6B3D 633FA900   ; L-hand
C3/AA79:	CF3D 8B7F9D00   ; Head
C3/AA7F:	EB3D 6BA73F00   ; Body
C3/AA85:	4F3E 8A6E5400   ; Relic 1
C3/AA8B:	6B3E 8A6E5500   ; Relic 2

Positioned party gear overview text for member 4
C3/AA91:	4F3F 9F2D00     ; R-hand
C3/AA96:	6B3F 633FA900   ; L-hand
C3/AA9C:	CF3F 8B7F9D00   ; Head
C3/AAA2:	EB3F 6BA73F00   ; Body
C3/AAA8:	4F40 8A6E5400   ; Relic 1
C3/AAAE:	6B40 8A6E5500   ; Relic 2

Text pointers for Equip menu
C3/AAB4:	1AAB    	; EQUIP
C3/AAB6:	20AB    	; OPTIMUM
C3/AAB8:	28AB    	; RMOVE
C3/AABA:	2EAB    	; EMPTY
C3/AABC:	D5AA    	; Head
C3/AABE:	DBAA    	; Body

Text pointers for Relic menu
C3/AAC0:	38AB    	; EQUIP
C3/AAC2:	3EAB    	; REMOVE
C3/AAC4:	E1AA    	; Relic
C3/AAC6:	E9AA    	; Relic

Positioned text for Equip and Relic menus
C3/AAC8:	CD79 9F2D8500                  ; R-hand
C3/AACE:	4D7A 633FA98500                ; L-hand
C3/AAD5:	CD7A 8B7F9D00                  ; Head
C3/AADB:	4D7B 6BA73F00                  ; Body
C3/AAE1:	CD7A 8A6E7A74A800              ; Relic
C3/AAE9:	4D7B 8A6E7A74A800              ; Relic

Positioned spaces for blanking options and title in gear menus
C3/AAF1:	D178 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00

Positioned text for title in Equip and Relic menus
C3/AB0E:	FD78 7D892300                  ; EQUIP
C3/AB14:	FD78 61397900                  ; REMOVE

Positioned text for options in Equip menu
C3/AB1A:	D178 7D892300                  ; EQUIP
C3/AB20:	DB78 758D6DC38900              ; OPTIMUM
C3/AB28:	E978 61397900                  ; RMOVE
C3/AB2E:	F578 792785613979FF00          ; EMPTY

Positioned text for options in Relic menu
C3/AB38:	D178 7D892300                  ; EQUIP
C3/AB3E:	DB78 61397900                  ; REMOVE

Text pointers for Equip and Relic menus
C3/AB44:	68AB    	               ; Vigor
C3/AB46:	6EAB    	               ; Stamina
C3/AB48:	76AB    	               ; Mag.Pwr
C3/AB4A:	7DAB    	               ; Evade %
C3/AB4C:	85AB    	               ; MBlock%
C3/AB4E:	90AB    	               ; ->
C3/AB50:	94AB    	               ; ->
C3/AB52:	98AB    	               ; ->
C3/AB54:	9CAB    	               ; ->
C3/AB56:	A0AB    	               ; ->
C3/AB58:	A4AB    	               ; ->
C3/AB5A:	A8AB    	               ; ->
C3/AB5C:	ACAB    	               ; ->
C3/AB5E:	B0AB    	               ; ->
C3/AB60:	B4AB    	               ; Speed
C3/AB62:	BBAB    	               ; Bat.Pwr
C3/AB64:	C5AB    	               ; Defense
C3/AB66:	CCAB    	               ; Mag.Def

Positioned text for Equip and Relic menus
C3/AB68:	A77C 816BA700                  ; Vigor
C3/AB6E:	A77D 7F8DA9C36F00              ; Stamina
C3/AB76:	277E 9DA9C36F00                ; Mag.Pwr
C3/AB7D:	A77F 6B8D63A98300              ; Evade %
C3/AB85:	A780 9D69896B8D63A98300        ; MBlock%
C3/AB90:	BD7C D500                      ; ->
C3/AB94:	3D7D D500                      ; ->
C3/AB98:	BD7D D500                      ; ->
C3/AB9C:	3D7E D500                      ; ->
C3/ABA0:	3D7F D500                      ; ->
C3/ABA4:	BD7F D500                      ; ->
C3/ABA8:	BD7E D500                      ; ->
C3/ABAC:	3D80 D500                      ; ->
C3/ABB0:	BD80 D500                      ; ->
C3/ABB4:	E77C 7921B17500                ; Speed
C3/ABBB:	677E 7389316DA9C36F00          ; Bat.Pwr
C3/ABC5:	E77E 29892DC300                ; Defense
C3/ABCC:	E77F 9D698929892DC300          ; Mag.Def
C3/ABD6:	F379 FFFFFFFFFFFF00            ; Blank effect A
C3/ABDF:	737A FFFFFFFFFFFF00            ; Blank effect B
C3/ABE8:	6F7A 37C1897D892300            ; Heavy gear
C3/ABF1:	EF79 958789A9C18900            ; Dual wield
C3/ABFA:	6F7A A9C38985A58100            ; Two-handed
C3/AC03:	E178 D0792785613979D100        ; Empty
C3/AC0E:	E178 D0758D6DC3897D8923D100    ; Optimum
C3/AC1B:	6179 D0792785613979D100        ; Empty
C3/AC26:	6179 D0758D6DC3897D8923D100    ; Optimum
C3/AC33:	CF79 7D8923956B6BB7AB8A6E7A74A8; Equipment changed.
        	     C52BFF67B9738975AD9D777F00

Establish button purposes and autofire delays
C3/AC4F:	A908    	LDA #$08       ; Initial delay
C3/AC51:	8D2902  	STA $0229      ; For: General
C3/AC54:	A903    	LDA #$03       ; Repeat delay
C3/AC56:	8D2A02  	STA $022A      ; For: General
C3/AC59:	8D2602  	STA $0226      ; For: A in battle
C3/AC5C:	A920    	LDA #$20       ; Initial delay
C3/AC5E:	8D2502  	STA $0225      ; For: A in battle
C3/AC61:	AD541D  	LDA $1D54      ; Game options
C3/AC64:	2940    	AND #$40       ; Custom buttons?
C3/AC66:	F004    	BEQ $AC6C      ; Reset if not
C3/AC68:	20EFAD  	JSR $ADEF      ; Apply user keys
C3/AC6B:	6B      	RTL            ; Exit
C3/AC6C:	20FCAD  	JSR $ADFC      ; Reset buttons
C3/AC6F:	6B      	RTL

Decode joypads for battle
C3/AC70:	AD541D  	LDA $1D54      ; Two players?
C3/AC73:	100E    	BPL $AC83      ; Branch if not
C3/AC75:	7B      	TDC            ; Clear A
C3/AC76:	AD0102  	LDA $0201      ; Member slot
C3/AC79:	AA      	TAX            ; Index it
C3/AC7A:	AD4F1D  	LDA $1D4F      ; Assigned pad
C3/AC7D:	3F68ADC3	AND $C3AD68,X  ; Player 2's?
C3/AC81:	D005    	BNE $AC88      ; Branch if so
C3/AC83:	AE1842  	LDX $4218      ; Player 1 keys
C3/AC86:	8005    	BRA $AC8D      ; Skip 2 lines
C3/AC88:	AE1A42  	LDX $421A      ; Player 2 keys
C3/AC8B:	8000    	BRA $AC8D      ; ...
C3/AC8D:	20AEAC  	JSR $ACAE      ; Decode keys
C3/AC90:	20E8AC  	JSR $ACE8      ; Do autofire
C3/AC93:	2021AD  	JSR $AD21      ; Adjust it
C3/AC96:	4C52AD  	JMP $AD52      ; Restore $E0+

Decode joypads for field menu
C3/AC99:	AE1842  	LDX $4218      ; Player 1 keys
C3/AC9C:	20AEAC  	JSR $ACAE      ; Decode keys
C3/AC9F:	20E8AC  	JSR $ACE8      ; Do autofire
C3/ACA2:	4C52AD  	JMP $AD52      ; Restore $E0+

Decode joypads for field
C3/ACA5:	AE1842  	LDX $4218      ; Player 1 keys
C3/ACA8:	20AEAC  	JSR $ACAE      ; Decode keys
C3/ACAB:	4C52AD  	JMP $AD52      ; Restore $E0+

Update non-time-based joypad keys
C3/ACAE:	A4E0    	LDY $E0        ; Temp var
C3/ACB0:	8C1302  	STY $0213      ; Make backup
C3/ACB3:	A4E7    	LDY $E7        ; Temp var
C3/ACB5:	8C1502  	STY $0215      ; Make backup
C3/ACB8:	A4E9    	LDY $E9        ; Temp var
C3/ACBA:	8C1702  	STY $0217      ; Make backup
C3/ACBD:	A4EB    	LDY $EB        ; Temp var
C3/ACBF:	8C1902  	STY $0219      ; Make backup
C3/ACC2:	86EB    	STX $EB        ; Save pad keys
C3/ACC4:	C220    	REP #$20       ; 16-bit A
C3/ACC6:	A50C    	LDA $0C        ; Former keys
C3/ACC8:	29F0FF  	AND #$FFF0     ; Unused bits...
C3/ACCB:	85E0    	STA $E0        ; Memorize them
C3/ACCD:	206CAD  	JSR $AD6C      ; Convert keys
C3/ACD0:	A50C    	LDA $0C        ; Former keys
C3/ACD2:	49FFFF  	EOR #$FFFF     ; Invert them
C3/ACD5:	2506    	AND $06        ; Keep current
C3/ACD7:	8508    	STA $08        ; Set no-auto keys
C3/ACD9:	A406    	LDY $06        ; Pushed keys
C3/ACDB:	840C    	STY $0C        ; Set former keys
C3/ACDD:	AD1842  	LDA $4218      ; Player 1 keys
C3/ACE0:	0D1A42  	ORA $421A      ; Add player 2's
C3/ACE3:	8504    	STA $04        ; Set merged keys
C3/ACE5:	E220    	SEP #$20       ; 8-bit A
C3/ACE7:	60      	RTS

Update slow autofire keys
C3/ACE8:	C220    	REP #$20       ; 16-bit A
C3/ACEA:	A506    	LDA $06        ; Pushed keys
C3/ACEC:	29F0FF  	AND #$FFF0     ; Clear pad type
C3/ACEF:	C5E0    	CMP $E0        ; Unchanged?
C3/ACF1:	E220    	SEP #$20       ; 8-bit A
C3/ACF3:	D01B    	BNE $AD10      ; Use new if not
C3/ACF5:	AD2702  	LDA $0227      ; Initial delay
C3/ACF8:	F005    	BEQ $ACFF      ; Branch if over
C3/ACFA:	CE2702  	DEC $0227      ; Initial delay -1
C3/ACFD:	D01D    	BNE $AD1C      ; No keys if > 0
C3/ACFF:	CE2802  	DEC $0228      ; Repeat delay -1
C3/AD02:	D018    	BNE $AD1C      ; No keys if > 0
C3/AD04:	AD2A02  	LDA $022A      ; Delay: 3
C3/AD07:	8D2802  	STA $0228      ; Set repeat timer
C3/AD0A:	A406    	LDY $06        ; Pushed keys
C3/AD0C:	840A    	STY $0A        ; Set slow keys
C3/AD0E:	8010    	BRA $AD20      ; Exit
C3/AD10:	AD2902  	LDA $0229      ; Delay: 8
C3/AD13:	8D2702  	STA $0227      ; Set initial
C3/AD16:	AD2A02  	LDA $022A      ; Delay: 3
C3/AD19:	8D2802  	STA $0228      ; Set repeat timer
C3/AD1C:	A408    	LDY $08        ; No-autofire keys
C3/AD1E:	840A    	STY $0A        ; Set slow keys
C3/AD20:	60      	RTS

Adjust slow autofire keys for battle
C3/AD21:	A506    	LDA $06        ; Pushed keys
C3/AD23:	8980    	BIT #$80       ; Pushing A?
C3/AD25:	F01B    	BEQ $AD42      ; Branch if not
C3/AD27:	AD2502  	LDA $0225      ; Initial delay
C3/AD2A:	F005    	BEQ $AD31      ; Branch if over
C3/AD2C:	CE2502  	DEC $0225      ; Initial delay -1
C3/AD2F:	D01C    	BNE $AD4D      ; New keys if > 0
C3/AD31:	CE2602  	DEC $0226      ; Repeat delay -1
C3/AD34:	D017    	BNE $AD4D      ; New keys if > 0
C3/AD36:	AD2A02  	LDA $022A      ; Delay: 3
C3/AD39:	8D2602  	STA $0226      ; Set repeat timer
C3/AD3C:	A980    	LDA #$80       ; Button: A
C3/AD3E:	040A    	TSB $0A        ; Add to slow keys
C3/AD40:	800F    	BRA $AD51      ; Exit
C3/AD42:	A920    	LDA #$20       ; Delay: 32
C3/AD44:	8D2502  	STA $0225      ; Set initial
C3/AD47:	AD2A02  	LDA $022A      ; Delay: 3
C3/AD4A:	8D2602  	STA $0226      ; Set repeat timer
C3/AD4D:	A508    	LDA $08        ; No-autofire keys
C3/AD4F:	850A    	STA $0A        ; Set slow keys
C3/AD51:	60      	RTS

Restore backup of multipurpose variables
C3/AD52:	AC1302  	LDY $0213      ; $E0 backup
C3/AD55:	84E0    	STY $E0        ; Restore it
C3/AD57:	AC1502  	LDY $0215      ; $E7 backup
C3/AD5A:	84E7    	STY $E7        ; Restore it
C3/AD5C:	AC1702  	LDY $0217      ; $E9 backup
C3/AD5F:	84E9    	STY $E9        ; Restore it
C3/AD61:	AC1902  	LDY $0219      ; $EB backup
C3/AD64:	84EB    	STY $EB        ; Restore it
C3/AD66:	7B      	TDC            ; Clear A
C3/AD67:	6B      	RTL

Bitfield for joypad assignments
C3/AD68:	01      	; Member 1
C3/AD69:	02      	; Member 2
C3/AD6A:	04      	; Member 3
C3/AD6B:	08      	; Member 4

Convert pushed keys based on user settings
C3/AD6C:	A5EB    	LDA $EB        ; Pushed keys
C3/AD6E:	29000F  	AND #$0F00     ; Get D-Pad's
C3/AD71:	8506    	STA $06        ; Set fast keys
C3/AD73:	A98000  	LDA #$0080     ; Target: A
C3/AD76:	85E7    	STA $E7        ; Set key #1
C3/AD78:	A90080  	LDA #$8000     ; Target: B
C3/AD7B:	85E9    	STA $E9        ; Set key #2
C3/AD7D:	A400    	LDY $00        ; Cfg index: 0
C3/AD7F:	20ACAD  	JSR $ADAC      ; Do A and B
C3/AD82:	A94000  	LDA #$0040     ; Target: X
C3/AD85:	85E7    	STA $E7        ; Set key #1
C3/AD87:	A90040  	LDA #$4000     ; Target: Y
C3/AD8A:	85E9    	STA $E9        ; Set key #2
C3/AD8C:	C8      	INY            ; Index +1
C3/AD8D:	20ACAD  	JSR $ADAC      ; Do X and Y
C3/AD90:	A92000  	LDA #$0020     ; Target: L
C3/AD93:	85E7    	STA $E7        ; Set key #1
C3/AD95:	A91000  	LDA #$0010     ; Target: R
C3/AD98:	85E9    	STA $E9        ; Set key #2
C3/AD9A:	C8      	INY            ; Index +1
C3/AD9B:	20ACAD  	JSR $ADAC      ; Do L and R
C3/AD9E:	A90010  	LDA #$1000     ; Target: Start
C3/ADA1:	85E7    	STA $E7        ; Set key #1
C3/ADA3:	A90020  	LDA #$2000     ; Target: Select
C3/ADA6:	85E9    	STA $E9        ; Set key #2
C3/ADA8:	C8      	INY            ; Index +1
C3/ADA9:	4CACAD  	JMP $ADAC      ; ...

Convert two pushed keys to their respective purposes
C3/ADAC:	A5EB    	LDA $EB        ; Pushed keys
C3/ADAE:	24E7    	BIT $E7        ; Has key #1?
C3/ADB0:	F014    	BEQ $ADC6      ; Skip if not
C3/ADB2:	7B      	TDC            ; Clear A
C3/ADB3:	E220    	SEP #$20       ; 8-bit A
C3/ADB5:	B92002  	LDA $0220,Y    ; Key actions
C3/ADB8:	29F0    	AND #$F0       ; Get key #1's
C3/ADBA:	C220    	REP #$20       ; 16-bit A
C3/ADBC:	4A      	LSR A          ; Put in b3-b6
C3/ADBD:	4A      	LSR A          ; Put in b2-b5
C3/ADBE:	4A      	LSR A          ; Put in b1-b4
C3/ADBF:	AA      	TAX            ; Index it
C3/ADC0:	BFDFADC3	LDA $C3ADDF,X  ; Action bit
C3/ADC4:	0406    	TSB $06        ; Set fast key
C3/ADC6:	A5EB    	LDA $EB        ; Pushed keys
C3/ADC8:	24E9    	BIT $E9        ; Has key #2?
C3/ADCA:	F012    	BEQ $ADDE      ; Exit if not
C3/ADCC:	7B      	TDC            ; Clear A
C3/ADCD:	E220    	SEP #$20       ; 8-bit A
C3/ADCF:	B92002  	LDA $0220,Y    ; Key actions
C3/ADD2:	290F    	AND #$0F       ; Get key #2's
C3/ADD4:	C220    	REP #$20       ; 16-bit A
C3/ADD6:	0A      	ASL A          ; Double it
C3/ADD7:	AA      	TAX            ; Index it
C3/ADD8:	BFDFADC3	LDA $C3ADDF,X  ; Action bit
C3/ADDC:	0406    	TSB $06        ; Set fast key
C3/ADDE:	60      	RTS

Bitfield for button purposes
C3/ADDF:	0010    	; End        (Start)
C3/ADE1:	8000    	; Confirm    (A)
C3/ADE3:	0080    	; Cancel     (B)
C3/ADE5:	4000    	; Menu       (X)
C3/ADE7:	0040    	; Switch     (Y)
C3/ADE9:	2000    	; Page up    (L)
C3/ADEB:	1000    	; Page down  (R, Select)
C3/ADED:	0020    	; Unused

Apply player's button settings
C3/ADEF:	AC501D  	LDY $1D50      ; A, B, X, Y
C3/ADF2:	8C2002  	STY $0220      ; Set purposes
C3/ADF5:	AC521D  	LDY $1D52      ; L, R, Select
C3/ADF8:	8C2202  	STY $0222      ; Set purposes
C3/ADFB:	60      	RTS

Apply default button settings
C3/ADFC:	A01234  	LDY #$3412     ; A, B, X, Y
C3/ADFF:	8C2002  	STY $0220      ; Set purposes
C3/AE02:	A05606  	LDY #$0656     ; L, R, Select
C3/AE05:	8C2202  	STY $0222      ; Set purposes
C3/AE08:	60      	RTS

Build tilemap for SwdTech list
C3/AE09:	A24980  	LDX #$8049     ; Base: 7E/8049
C3/AE0C:	86EB    	STX $EB        ; Set map ptr LBs
C3/AE0E:	A97E    	LDA #$7E       ; Bank: 7E
C3/AE10:	85ED    	STA $ED        ; Set ptr HB
C3/AE12:	A600    	LDX $00        ; ROM index: 0
C3/AE14:	C220    	REP #$20       ; 16-bit A
C3/AE16:	BF3AAEC3	LDA $C3AE3A,X  ; End of range
C3/AE1A:	E8      	INX            ; ROM index +1
C3/AE1B:	E8      	INX            ; ROM index +1
C3/AE1C:	85E7    	STA $E7        ; Set row's limit
C3/AE1E:	BF3AAEC3	LDA $C3AE3A,X  ; Start of range
C3/AE22:	E8      	INX            ; ROM index +1
C3/AE23:	E8      	INX            ; ROM index +1
C3/AE24:	A8      	TAY            ; Y = Range start
C3/AE25:	BF3AAEC3	LDA $C3AE3A,X  ; Base attributes
C3/AE29:	E8      	INX            ; ROM index +1
C3/AE2A:	E8      	INX            ; ROM index +1
C3/AE2B:	85E0    	STA $E0        ; Memorize attribs
C3/AE2D:	E220    	SEP #$20       ; ...
C3/AE2F:	DA      	PHX            ; Save ROM index
C3/AE30:	20C6B0  	JSR $B0C6      ; Build row
C3/AE33:	FA      	PLX            ; ROM index
C3/AE34:	E06000  	CPX #$0060     ; End of table?
C3/AE37:	D0DB    	BNE $AE14      ; Loop if not
C3/AE39:	60      	RTS

Tilemap data for Dispatch in SwdTech menu
C3/AE3A:	9C038A03	; Range: 6,15 to 14,15
C3/AE3E:	8035    	; Tile 384, pal 5, priority
C3/AE40:	DC03CA03	; Range: 6,16 to 14,16
C3/AE44:	8135    	; Tile 385, pal 5, priority

Tilemap data for Retort in SwdTech menu
C3/AE46:	B803A603	; Range: 20,15 to 28,15
C3/AE4A:	9235    	; Tile 402, pal 5, priority
C3/AE4C:	F803E603	; Range: 20,16 to 28,16
C3/AE50:	9335    	; Tile 403, pal 5, priority

Tilemap data for Slash in SwdTech menu
C3/AE52:	5C044A04	; Range: 6,18 to 14,18
C3/AE56:	A435    	; Tile 420, pal 5, priority
C3/AE58:	9C048A04	; Range: 6,19 to 14,19
C3/AE5C:	A535    	; Tile 421, pal 5, priority

Tilemap data for Quadra Slam in SwdTech menu
C3/AE5E:	78046604	; Range: 20,18 to 28,18
C3/AE62:	B635    	; Tile 438, pal 5, priority
C3/AE64:	B804A604	; Range: 20,19 to 28,19
C3/AE68:	B735    	; Tile 439, pal 5, priority

Tilemap data for Empowerer in SwdTech menu
C3/AE6A:	1C050A05	; Range: 6,21 to 14,21
C3/AE6E:	C835    	; Tile 456, pal 5, priority
C3/AE70:	5C054A05	; Range: 6,22 to 14,22
C3/AE74:	C935    	; Tile 457, pal 5, priority

Tilemap data for Stunner in SwdTech menu
C3/AE76:	38052605	; Range: 20,21 to 28,21
C3/AE7A:	DA35    	; Tile 474, pal 5, priority
C3/AE7C:	78056605	; Range: 20,22 to 28,22
C3/AE80:	DB35    	; Tile 475, pal 5, priority

Tilemap data for Quadra Slice in SwdTech menu
C3/AE82:	DC05CA05	; Range: 6,24 to 14,24
C3/AE86:	EC35    	; Tile 492, pal 5, priority
C3/AE88:	1C060A06	; Range: 6,25 to 14,25
C3/AE8C:	ED35    	; Tile 493, pal 5, priority

Tilemap data for Cleave in SwdTech menu
C3/AE8E:	F805E605	; Range: 20,24 to 28,24
C3/AE92:	FE35    	; Tile 510, pal 5, priority
C3/AE94:	38062606	; Range: 20,25 to 28,25
C3/AE98:	FF35    	; Tile 511, pal 5, priority

Load and upload VWF name graphics for every known SwdTech
C3/AE9A:	A600    	LDX $00        ; Src: 7E/1CF8
C3/AE9C:	A901    	LDA #$01       ; Dispatch bit
C3/AE9E:	2024AF  	JSR $AF24      ; Load name GFX
C3/AEA1:	A0006C  	LDY #$6C00     ; VRAM: $6C00
C3/AEA4:	2053AF  	JSR $AF53      ; Upload GFX
C3/AEA7:	A20600  	LDX #$0006     ; Src: 7E/1CFE
C3/AEAA:	A902    	LDA #$02       ; Retort bit
C3/AEAC:	2024AF  	JSR $AF24      ; Load name GFX
C3/AEAF:	A0906C  	LDY #$6C90     ; VRAM: $6C90
C3/AEB2:	2053AF  	JSR $AF53      ; Upload GFX
C3/AEB5:	A20C00  	LDX #$000C     ; Src: 7E/1D04
C3/AEB8:	A904    	LDA #$04       ; Slash bit
C3/AEBA:	2024AF  	JSR $AF24      ; Load name GFX
C3/AEBD:	A0206D  	LDY #$6D20     ; VRAM: $6D20
C3/AEC0:	2053AF  	JSR $AF53      ; Upload GFX
C3/AEC3:	A21200  	LDX #$0012     ; Src: 7E/1D0A
C3/AEC6:	A908    	LDA #$08       ; Quadra Slam
C3/AEC8:	2024AF  	JSR $AF24      ; Load name GFX
C3/AECB:	A0B06D  	LDY #$6DB0     ; VRAM: $6DB0
C3/AECE:	2053AF  	JSR $AF53      ; Upload GFX
C3/AED1:	A21800  	LDX #$0018     ; Src: 7E/1D10
C3/AED4:	A910    	LDA #$10       ; Empowerer bit
C3/AED6:	2024AF  	JSR $AF24      ; Load name GFX
C3/AED9:	A0406E  	LDY #$6E40     ; VRAM: $6E40
C3/AEDC:	2053AF  	JSR $AF53      ; Upload GFX
C3/AEDF:	A21E00  	LDX #$001E     ; Src: 7E/1D16
C3/AEE2:	A920    	LDA #$20       ; Stunner bit
C3/AEE4:	2024AF  	JSR $AF24      ; Load name GFX
C3/AEE7:	A0D06E  	LDY #$6ED0     ; VRAM: $6ED0
C3/AEEA:	2053AF  	JSR $AF53      ; Upload GFX
C3/AEED:	A22400  	LDX #$0024     ; Src: 7E/1D1C
C3/AEF0:	A940    	LDA #$40       ; Quadra Slice
C3/AEF2:	2024AF  	JSR $AF24      ; Load name GFX
C3/AEF5:	A0606F  	LDY #$6F60     ; VRAM: $6F60
C3/AEF8:	2053AF  	JSR $AF53      ; Upload GFX
C3/AEFB:	A22A00  	LDX #$002A     ; Src: 7E/1D22
C3/AEFE:	A980    	LDA #$80       ; Cleaver bit
C3/AF00:	2024AF  	JSR $AF24      ; Load name GFX
C3/AF03:	A0F06F  	LDY #$6FF0     ; VRAM: $6FF0
C3/AF06:	2053AF  	JSR $AF53      ; Upload GFX
C3/AF09:	4CF40F  	JMP $0FF4      ; Dequeue upload

Clear buffer for storing SwdTech name or actor pseudonym in ending
C3/AF0C:	7B      	TDC            ; Clear A
C3/AF0D:	AA      	TAX            ; Index: 0
C3/AF0E:	C220    	REP #$20       ; 16-bit A
C3/AF10:	9F71A27E	STA $7EA271,X  ; Tile row A
C3/AF14:	E8      	INX            ; Index +1
C3/AF15:	E8      	INX            ; Index +1
C3/AF16:	9F71A27E	STA $7EA271,X  ; Tile row B
C3/AF1A:	E8      	INX            ; Index +1
C3/AF1B:	E8      	INX            ; Index +1
C3/AF1C:	E04002  	CPX #$0240     ; Done 36 tiles?
C3/AF1F:	D0EF    	BNE $AF10      ; Loop if not
C3/AF21:	E220    	SEP #$20       ; 8-bit A
C3/AF23:	60      	RTS

Load VWF name graphics for current SwdTech, unfreeze CGRAM
C3/AF24:	85E0    	STA $E0        ; Save SwdTech
C3/AF26:	DA      	PHX            ; Save char index
C3/AF27:	200CAF  	JSR $AF0C      ; Clear GFX buffer
C3/AF2A:	FA      	PLX            ; Character index
C3/AF2B:	ADF71C  	LDA $1CF7      ; Known SwdTechs
C3/AF2E:	25E0    	AND $E0        ; Includes ours?
C3/AF30:	F01C    	BEQ $AF4E      ; Exit if not
C3/AF32:	648D    	STZ $8D        ; String width: 0
C3/AF34:	64ED    	STZ $ED        ; VRAM index LB: 0
C3/AF36:	64EE    	STZ $EE        ; VRAM index HB: 0
C3/AF38:	A906    	LDA #$06       ; Letters: 6
C3/AF3A:	85F1    	STA $F1        ; Set counter
C3/AF3C:	BDF81C  	LDA $1CF8,X    ; Name letter
C3/AF3F:	A0403F  	LDY #$3F40     ; Base: C4/D400
C3/AF42:	84EB    	STY $EB        ; Set font index
C3/AF44:	DA      	PHX            ; Save char index
C3/AF45:	2027B2  	JSR $B227      ; Load graphics
C3/AF48:	FA      	PLX            ; Char index
C3/AF49:	E8      	INX            ; Char index +1
C3/AF4A:	C6F1    	DEC $F1        ; One less char
C3/AF4C:	D0EE    	BNE $AF3C      ; Loop till last
C3/AF4E:	A901    	LDA #$01       ; CGRAM: Refresh
C3/AF50:	0445    	TSB $45        ; Set NMI flag
C3/AF52:	60      	RTS

Upload VWF graphics for element or SwdTech menu kanji; freeze CGRAM
C3/AF53:	205DAF  	JSR $AF5D      ; Set src and dst
C3/AF56:	A901    	LDA #$01       ; CGRAM: Freeze
C3/AF58:	1445    	TRB $45        ; Set NMI flag
C3/AF5A:	4C1715  	JMP $1517      ; Upload graphics

Set to upload VWF string graphics (elements, SwdTech, ending pseudonym)
C3/AF5D:	841B    	STY $1B        ; Set VRAM ptr
C3/AF5F:	A071A2  	LDY #$A271     ; 7E/A271
C3/AF62:	841D    	STY $1D        ; Set src LBs
C3/AF64:	A02001  	LDY #$0120     ; Bytes: 288
C3/AF67:	8419    	STY $19        ; Set data size
C3/AF69:	A97E    	LDA #$7E       ; Bank: 7E
C3/AF6B:	851F    	STA $1F        ; Set src HB
C3/AF6D:	60      	RTS

Build tilemap for actor's pseudonym in ending
C3/AF6E:	A24978  	LDX #$7849     ; Base: 7E/7849
C3/AF71:	86EB    	STX $EB        ; Set map ptr LBs
C3/AF73:	A97E    	LDA #$7E       ; Bank: 7E
C3/AF75:	85ED    	STA $ED        ; Set ptr HB
C3/AF77:	A0A605  	LDY #$05A6     ; Ends at 19,23
C3/AF7A:	84E7    	STY $E7        ; Set row's limit
C3/AF7C:	A09A05  	LDY #$059A     ; Starts at 14,23
C3/AF7F:	A21024  	LDX #$2410     ; Tile 16, pal 1
C3/AF82:	86E0    	STX $E0        ; Priority enabled
C3/AF84:	20C6B0  	JSR $B0C6      ; Build row 1
C3/AF87:	A0E605  	LDY #$05E6     ; Ends at 19,24
C3/AF8A:	84E7    	STY $E7        ; Set row's limit
C3/AF8C:	A0DA05  	LDY #$05DA     ; Starts at 14,24
C3/AF8F:	A21124  	LDX #$2411     ; Tile 17, pal 1
C3/AF92:	86E0    	STX $E0        ; Priority enabled
C3/AF94:	20C6B0  	JSR $B0C6      ; Build row 2
C3/AF97:	60      	RTS

Load and set to upload VWF graphics for actor's pseudonym
C3/AF98:	200CAF  	JSR $AF0C      ; Clear GFX buffer
C3/AF9B:	A908    	LDA #$08       ; Pixels: 8
C3/AF9D:	85B6    	STA $B6        ; Set char width
C3/AF9F:	648D    	STZ $8D        ; String width: 0
C3/AFA1:	64ED    	STZ $ED        ; VRAM index LB: 0
C3/AFA3:	64EE    	STZ $EE        ; VRAM index HB: 0
C3/AFA5:	A906    	LDA #$06       ; Letters: 6
C3/AFA7:	85F1    	STA $F1        ; Set counter
C3/AFA9:	A600    	LDX $00        ; Letter index: 0
C3/AFAB:	BF899E7E	LDA $7E9E89,X  ; Letter
C3/AFAF:	A04055  	LDY #$5540     ; Base: C4/EA00
C3/AFB2:	84EB    	STY $EB        ; Set font index
C3/AFB4:	DA      	PHX            ; Save char index
C3/AFB5:	2027B2  	JSR $B227      ; Load graphics
C3/AFB8:	FA      	PLX            ; Letter index
C3/AFB9:	E8      	INX            ; Letter index +1
C3/AFBA:	C6F1    	DEC $F1        ; One less letter
C3/AFBC:	D0ED    	BNE $AFAB      ; Loop till last
C3/AFBE:	A08020  	LDY #$2080     ; VRAM pointer
C3/AFC1:	205DAF  	JSR $AF5D      ; Queue upload
C3/AFC4:	60      	RTS

Build description tilemap for Skills submenus
C3/AFC5:	A24980  	LDX #$8049     ; Base: 7E/8049
C3/AFC8:	86EB    	STX $EB        ; Set map ptr LBs
C3/AFCA:	A97E    	LDA #$7E       ; Bank: 7E
C3/AFCC:	85ED    	STA $ED        ; Set ptr HB
C3/AFCE:	A0BC00  	LDY #$00BC     ; Ends at 30,3
C3/AFD1:	84E7    	STY $E7        ; Set row's limit
C3/AFD3:	A09400  	LDY #$0094     ; Starts at 11,3
C3/AFD6:	A20035  	LDX #$3500     ; Tile 256, pal 5
C3/AFD9:	86E0    	STX $E0        ; Priority enabled
C3/AFDB:	20C6B0  	JSR $B0C6      ; Build row 1
C3/AFDE:	A0FC00  	LDY #$00FC     ; Ends at 30,4
C3/AFE1:	84E7    	STY $E7        ; Set row's limit
C3/AFE3:	A0D400  	LDY #$00D4     ; Starts at 11,4
C3/AFE6:	A20135  	LDX #$3501     ; Tile 257, pal 5
C3/AFE9:	86E0    	STX $E0        ; Priority enabled
C3/AFEB:	4CC6B0  	JMP $B0C6      ; Build row 2

Build description tilemap for Relic menu
C3/AFEE:	A24978  	LDX #$7849     ; Base: 7E/7849
C3/AFF1:	86EB    	STX $EB        ; Set map ptr LBs
C3/AFF3:	A97E    	LDA #$7E       ; Bank: 7E
C3/AFF5:	85ED    	STA $ED        ; Set ptr HB
C3/AFF7:	A0BC01  	LDY #$01BC     ; Ends at 30,7
C3/AFFA:	84E7    	STY $E7        ; Set row's limit
C3/AFFC:	A08401  	LDY #$0184     ; Starts at 3,7
C3/AFFF:	A20035  	LDX #$3500     ; Tile 256, pal 5
C3/B002:	86E0    	STX $E0        ; Priority enabled
C3/B004:	20C6B0  	JSR $B0C6      ; Do line 1, row 1
C3/B007:	A0FC01  	LDY #$01FC     ; Ends at 30,8
C3/B00A:	84E7    	STY $E7        ; Set row's limit
C3/B00C:	A0C401  	LDY #$01C4     ; Starts at 3,8
C3/B00F:	A20135  	LDX #$3501     ; Tile 257, pal 5
C3/B012:	86E0    	STX $E0        ; Priority enabled
C3/B014:	20C6B0  	JSR $B0C6      ; Do line 1, row 2
C3/B017:	A03C02  	LDY #$023C     ; Ends at 30,9
C3/B01A:	84E7    	STY $E7        ; Set row's limit
C3/B01C:	A00402  	LDY #$0204     ; Starts at 3,9
C3/B01F:	A23835  	LDX #$3538     ; Tile 312, pal 5
C3/B022:	86E0    	STX $E0        ; Priority enabled
C3/B024:	20C6B0  	JSR $B0C6      ; Do line 2, row 1
C3/B027:	A07C02  	LDY #$027C     ; Ends at 30,10
C3/B02A:	84E7    	STY $E7        ; Set row's limit
C3/B02C:	A04402  	LDY #$0244     ; Starts at 3,10
C3/B02F:	A23935  	LDX #$3539     ; Tile 313, pal 5
C3/B032:	86E0    	STX $E0        ; Priority enabled
C3/B034:	4CC6B0  	JMP $B0C6      ; Do line 2, row 2

Build description tilemap for shop menu
C3/B037:	A24978  	LDX #$7849     ; Base: 7E/7849
C3/B03A:	86EB    	STX $EB        ; Set map ptr LBs
C3/B03C:	A97E    	LDA #$7E       ; Bank: 7E
C3/B03E:	85ED    	STA $ED        ; Set ptr HB
C3/B040:	A0BC04  	LDY #$04BC     ; Ends at 30,19
C3/B043:	84E7    	STY $E7        ; Set row's limit
C3/B045:	A08404  	LDY #$0484     ; Starts at 3,19
C3/B048:	A20035  	LDX #$3500     ; Tile 256, pal 5
C3/B04B:	86E0    	STX $E0        ; Priority enabled
C3/B04D:	20C6B0  	JSR $B0C6      ; Do line 1, row 1
C3/B050:	A0FC04  	LDY #$04FC     ; Ends at 30,20
C3/B053:	84E7    	STY $E7        ; Set row's limit
C3/B055:	A0C404  	LDY #$04C4     ; Starts at 3,20
C3/B058:	A20135  	LDX #$3501     ; Tile 257, pal 5
C3/B05B:	86E0    	STX $E0        ; Priority enabled
C3/B05D:	20C6B0  	JSR $B0C6      ; Do line 1, row 2
C3/B060:	A03C05  	LDY #$053C     ; Ends at 30,21
C3/B063:	84E7    	STY $E7        ; Set row's limit
C3/B065:	A00405  	LDY #$0504     ; Starts at 3,21
C3/B068:	A23835  	LDX #$3538     ; Tile 312, pal 5
C3/B06B:	86E0    	STX $E0        ; Priority enabled
C3/B06D:	20C6B0  	JSR $B0C6      ; Do line 2, row 1
C3/B070:	A07C05  	LDY #$057C     ; Ends at 30,22
C3/B073:	84E7    	STY $E7        ; Set row's limit
C3/B075:	A04405  	LDY #$0544     ; Starts at 3,22
C3/B078:	A23935  	LDX #$3539     ; Tile 313, pal 5
C3/B07B:	86E0    	STX $E0        ; Priority enabled
C3/B07D:	4CC6B0  	JMP $B0C6      ; Do line 2, row 2

Build description tilemap for Item or Colosseum menu
C3/B080:	A24978  	LDX #$7849     ; Base: 7E/7849
C3/B083:	86EB    	STX $EB        ; Set map ptr LBs
C3/B085:	A97E    	LDA #$7E       ; Bank: 7E
C3/B087:	85ED    	STA $ED        ; Set ptr HB
C3/B089:	A0BC01  	LDY #$01BC     ; Ends at 30,7
C3/B08C:	84E7    	STY $E7        ; Set row's limit
C3/B08E:	A08401  	LDY #$0184     ; Starts at 3,7
C3/B091:	A20035  	LDX #$3500     ; Tile 256, pal 5
C3/B094:	86E0    	STX $E0        ; Priority enabled
C3/B096:	20C6B0  	JSR $B0C6      ; Do line 1, row 1
C3/B099:	A0FC01  	LDY #$01FC     ; Ends at 30,8
C3/B09C:	84E7    	STY $E7        ; Set row's limit
C3/B09E:	A0C401  	LDY #$01C4     ; Starts at 3,8
C3/B0A1:	A20135  	LDX #$3501     ; Tile 257, pal 5
C3/B0A4:	86E0    	STX $E0        ; Priority enabled
C3/B0A6:	20C6B0  	JSR $B0C6      ; Do line 1, row 2
C3/B0A9:	A03C02  	LDY #$023C     ; Ends at 30,9
C3/B0AC:	84E7    	STY $E7        ; Set row's limit
C3/B0AE:	A00402  	LDY #$0204     ; Starts at 3,9
C3/B0B1:	A23835  	LDX #$3538     ; Tile 312, pal 5
C3/B0B4:	86E0    	STX $E0        ; Priority enabled
C3/B0B6:	20C6B0  	JSR $B0C6      ; Do line 2, row 1
C3/B0B9:	A07C02  	LDY #$027C     ; Ends at 30,10
C3/B0BC:	84E7    	STY $E7        ; Set row's limit
C3/B0BE:	A04402  	LDY #$0244     ; Starts at 3,10
C3/B0C1:	A23935  	LDX #$3539     ; Tile 313, pal 5
C3/B0C4:	86E0    	STX $E0        ; Priority enabled
C3/B0C6:	C220    	REP #$20       ; 16-bit A
C3/B0C8:	A5E0    	LDA $E0        ; Tile attributes
C3/B0CA:	97EB    	STA [$EB],Y    ; Put in tilemap
C3/B0CC:	E6E0    	INC $E0        ; Tile +1
C3/B0CE:	E6E0    	INC $E0        ; Tile +1
C3/B0D0:	C8      	INY            ; Index +1
C3/B0D1:	C8      	INY            ; Index +1
C3/B0D2:	C4E7    	CPY $E7        ; Beyond range?
C3/B0D4:	D0F2    	BNE $B0C8      ; Loop if not
C3/B0D6:	E220    	SEP #$20       ; 8-bit A
C3/B0D8:	60      	RTS

Clear buffer for VWF description graphics
C3/B0D9:	8B      	PHB            ; Save DB
C3/B0DA:	A97E    	LDA #$7E       ; Bank: 7E
C3/B0DC:	48      	PHA            ; Put on stack
C3/B0DD:	AB      	PLB            ; Set DB to 7E
C3/B0DE:	7B      	TDC            ; Clear A
C3/B0DF:	AA      	TAX            ; Tile index: 0
C3/B0E0:	C220    	REP #$20       ; 16-bit A
C3/B0E2:	9E71A2  	STZ $A271,X    ; Tile A, row 1
C3/B0E5:	9E73A2  	STZ $A273,X    ; Tile A, row 2
C3/B0E8:	9E75A2  	STZ $A275,X    ; Tile A, row 3
C3/B0EB:	9E77A2  	STZ $A277,X    ; Tile A, row 4
C3/B0EE:	9E79A2  	STZ $A279,X    ; Tile A, row 5
C3/B0F1:	9E7BA2  	STZ $A27B,X    ; Tile A, row 6
C3/B0F4:	9E7DA2  	STZ $A27D,X    ; Tile A, row 7
C3/B0F7:	9E7FA2  	STZ $A27F,X    ; Tile A, row 8
C3/B0FA:	9E81A2  	STZ $A281,X    ; Tile B, row 1
C3/B0FD:	9E83A2  	STZ $A283,X    ; Tile B, row 2
C3/B100:	9E85A2  	STZ $A285,X    ; Tile B, row 3
C3/B103:	9E87A2  	STZ $A287,X    ; Tile B, row 4
C3/B106:	9E89A2  	STZ $A289,X    ; Tile B, row 5
C3/B109:	9E8BA2  	STZ $A28B,X    ; Tile B, row 6
C3/B10C:	9E8DA2  	STZ $A28D,X    ; Tile B, row 7
C3/B10F:	9E8FA2  	STZ $A28F,X    ; Tile B, row 8
C3/B112:	9E91A2  	STZ $A291,X    ; Tile C, row 1
C3/B115:	9E93A2  	STZ $A293,X    ; Tile C, row 2
C3/B118:	9E95A2  	STZ $A295,X    ; Tile C, row 3
C3/B11B:	9E97A2  	STZ $A297,X    ; Tile C, row 4
C3/B11E:	9E99A2  	STZ $A299,X    ; Tile C, row 5
C3/B121:	9E9BA2  	STZ $A29B,X    ; Tile C, row 6
C3/B124:	9E9DA2  	STZ $A29D,X    ; Tile C, row 7
C3/B127:	9E9FA2  	STZ $A29F,X    ; Tile C, row 8
C3/B12A:	9EA1A2  	STZ $A2A1,X    ; Tile D, row 1
C3/B12D:	9EA3A2  	STZ $A2A3,X    ; Tile D, row 2
C3/B130:	9EA5A2  	STZ $A2A5,X    ; Tile D, row 3
C3/B133:	9EA7A2  	STZ $A2A7,X    ; Tile D, row 4
C3/B136:	9EA9A2  	STZ $A2A9,X    ; Tile D, row 5
C3/B139:	9EABA2  	STZ $A2AB,X    ; Tile D, row 6
C3/B13C:	9EADA2  	STZ $A2AD,X    ; Tile D, row 7
C3/B13F:	9EAFA2  	STZ $A2AF,X    ; Tile D, row 8
C3/B142:	8A      	TXA            ; Tile index
C3/B143:	18      	CLC            ; Prepare ADC
C3/B144:	694000  	ADC #$0040     ; Skip 4 tiles
C3/B147:	AA      	TAX            ; Reindex it
C3/B148:	E00007  	CPX #$0700     ; Done 112 tiles?
C3/B14B:	D095    	BNE $B0E2      ; Loop if not
C3/B14D:	E220    	SEP #$20       ; 8-bit A
C3/B14F:	AB      	PLB            ; Restore DB
C3/B150:	60      	RTS

Update VWF description
C3/B151:	AA      	TAX            ; Index mode
C3/B152:	7C55B1  	JMP ($B155,X)  ; Handle mode

Jump table for the above
C3/B155:	5BB1    	; Clear description
C3/B157:	72B1    	; Sustain description
C3/B159:	5EB1    	; Initialize variables

Mode 0: Clear description
C3/B15B:	20D9B0  	JSR $B0D9      ; Clear desc GFX

Mode 2: Initialize variables
C3/B15E:	648D    	STZ $8D        ; Line width: 0
C3/B160:	A62D    	LDX $2D        ; Queue index
C3/B162:	A901    	LDA #$01       ; Mode: 1
C3/B164:	9D4936  	STA $3649,X    ; Next: Update
C3/B167:	7B      	TDC            ; Clear A
C3/B168:	C220    	REP #$20       ; 16-bit A
C3/B16A:	9DCA33  	STA $33CA,X    ; Char index: 0
C3/B16D:	9D4A34  	STA $344A,X    ; VRAM index: 0
C3/B170:	E220    	SEP #$20       ; 8-bit A

Mode 1: Sustain description
C3/B172:	A526    	LDA $26        ; Menu mode
C3/B174:	C917    	CMP #$17       ; Item menu top?
C3/B176:	F058    	BEQ $B1D0      ; Blank if so
C3/B178:	A546    	LDA $46        ; Menu flags
C3/B17A:	29C0    	AND #$C0       ; No scrollbar?
C3/B17C:	F006    	BEQ $B184      ; Branch if so
C3/B17E:	A506    	LDA $06        ; Pushed keys
C3/B180:	2930    	AND #$30       ; Using L or R?
C3/B182:	D054    	BNE $B1D8      ; Reset if so
C3/B184:	A545    	LDA $45        ; Menu flags
C3/B186:	8920    	BIT #$20       ; Ignore D-Pad?
C3/B188:	D006    	BNE $B190      ; Branch if so
C3/B18A:	A507    	LDA $07        ; Pushed keys
C3/B18C:	290F    	AND #$0F       ; Using D-Pad?
C3/B18E:	D048    	BNE $B1D8      ; Reset if so
C3/B190:	A545    	LDA $45        ; Menu flags
C3/B192:	8910    	BIT #$10       ; Clear desc?
C3/B194:	D042    	BNE $B1D8      ; Reset if so
C3/B196:	A42D    	LDY $2D        ; Queue index
C3/B198:	BE4A34  	LDX $344A,Y    ; VRAM index
C3/B19B:	86ED    	STX $ED        ; Memorize it
C3/B19D:	BECA33  	LDX $33CA,Y    ; Char index

Fork: Handle line break
C3/B1A0:	BFC99E7E	LDA $7E9EC9,X  ; Text character
C3/B1A4:	F039    	BEQ $B1DF      ; Branch if <end>
C3/B1A6:	C901    	CMP #$01       ; Line break?
C3/B1A8:	D00E    	BNE $B1B8      ; Branch if not
C3/B1AA:	648D    	STZ $8D        ; Line width: 0
C3/B1AC:	C220    	REP #$20       ; 16-bit A
C3/B1AE:	A98003  	LDA #$0380     ; Base tile: 57
C3/B1B1:	994A34  	STA $344A,Y    ; Set VRAM index
C3/B1B4:	E220    	SEP #$20       ; 8-bit A
C3/B1B6:	8008    	BRA $B1C0      ; Queue upload

Fork: Handle character
C3/B1B8:	20ECB1  	JSR $B1EC      ; Decode char
C3/B1BB:	DA      	PHX            ; Save char index
C3/B1BC:	2027B2  	JSR $B227      ; Load graphics
C3/B1BF:	FA      	PLX            ; Char index

Fork: Queue upload, advance char index
C3/B1C0:	E8      	INX            ; Char index +1
C3/B1C1:	A42D    	LDY $2D        ; Queue index
C3/B1C3:	C220    	REP #$20       ; 16-bit A
C3/B1C5:	8A      	TXA            ; Char index
C3/B1C6:	99CA33  	STA $33CA,Y    ; Put in queue
C3/B1C9:	E220    	SEP #$20       ; 8-bit A
C3/B1CB:	2001B3  	JSR $B301      ; Queue upload
C3/B1CE:	38      	SEC            ; Set to requeue
C3/B1CF:	60      	RTS

Fork: Clear description, stop updating
C3/B1D0:	20D9B0  	JSR $B0D9      ; Clear desc GFX
C3/B1D3:	2001B3  	JSR $B301      ; Set to upload
C3/B1D6:	18      	CLC            ; Set to dequeue
C3/B1D7:	60      	RTS

Fork: Set to reset description
C3/B1D8:	A62D    	LDX $2D        ; Queue index
C3/B1DA:	9E4936  	STZ $3649,X    ; Mode: 0
C3/B1DD:	38      	SEC            ; Set to requeue
C3/B1DE:	60      	RTS

Fork: Handle terminator
C3/B1DF:	A901    	LDA #$01       ; CGRAM: Refresh
C3/B1E1:	0445    	TSB $45        ; Set NMI flag
C3/B1E3:	A62D    	LDX $2D        ; Queue index
C3/B1E5:	A902    	LDA #$02       ; Mode: 2
C3/B1E7:	9D4936  	STA $3649,X    ; Next: Init
C3/B1EA:	38      	SEC            ; Set to requeue
C3/B1EB:	60      	RTS

Decode character from VWF string
C3/B1EC:	C91C    	CMP #$1C       ; Control 1C?
C3/B1EE:	F015    	BEQ $B205      ; Branch if so
C3/B1F0:	C91D    	CMP #$1D       ; Control 1D?
C3/B1F2:	F018    	BEQ $B20C      ; Branch if so
C3/B1F4:	C91E    	CMP #$1E       ; Control 1E?
C3/B1F6:	F01B    	BEQ $B213      ; Branch if so
C3/B1F8:	C91F    	CMP #$1F       ; Control 1F?
C3/B1FA:	F01E    	BEQ $B21A      ; Branch if so

Fork: Kana, etc. (large version)
C3/B1FC:	38      	SEC            ; Prepare SBC
C3/B1FD:	E920    	SBC #$20       ; Make 0-based
C3/B1FF:	64EB    	STZ $EB        ; Font index LB: 0
C3/B201:	64EC    	STZ $EC        ; Font index HB: 0
C3/B203:	8021    	BRA $B226      ; RTS...

Fork: Kanji table A
C3/B205:	A04013  	LDY #$1340     ; Base: C4/A800
C3/B208:	84EB    	STY $EB        ; Set font index
C3/B20A:	8015    	BRA $B221      ; Get true char

Fork: Kanji table B
C3/B20C:	A04029  	LDY #$2940     ; Base: C4/BE00
C3/B20F:	84EB    	STY $EB        ; Set font index
C3/B211:	800E    	BRA $B221      ; Get true char

Fork: Kanji table C
C3/B213:	A0403F  	LDY #$3F40     ; Base: C4/D400
C3/B216:	84EB    	STY $EB        ; Set font index
C3/B218:	8007    	BRA $B221      ; Get true char

Fork: Kanji table D and smaller kana, etc.
C3/B21A:	A04055  	LDY #$5540     ; Base: C4/EA00
C3/B21D:	84EB    	STY $EB        ; Set font index
C3/B21F:	8000    	BRA $B221      ; ...
C3/B221:	E8      	INX            ; Char index +1
C3/B222:	BFC99E7E	LDA $7E9EC9,X  ; Get true char
C3/B226:	60      	RTS

Load VWF character's graphics into string, add shadow effect
C3/B227:	48      	PHA            ; Save char...
C3/B228:	8F024200	STA $004202    ; Set multiplicand
C3/B22C:	A916    	LDA #$16       ; GFX data size
C3/B22E:	8F034200	STA $004203    ; Set multiplier
C3/B232:	A90B    	LDA #$0B       ; Rows left: 11
C3/B234:	85E5    	STA $E5        ; Set counter
C3/B236:	C220    	REP #$20       ; 16-bit A
C3/B238:	AF164200	LDA $004216    ; Char index
C3/B23C:	18      	CLC            ; Prepare ADC
C3/B23D:	65EB    	ADC $EB        ; Add font index
C3/B23F:	A8      	TAY            ; Set ROM index
C3/B240:	E220    	SEP #$20       ; 8-bit A
C3/B242:	7B      	TDC            ; Clear A
C3/B243:	A58D    	LDA $8D        ; Textline width
C3/B245:	29F8    	AND #$F8       ; Drop WIP tile's
C3/B247:	C220    	REP #$20       ; 16-bit A
C3/B249:	0A      	ASL A          ; x2
C3/B24A:	0A      	ASL A          ; x4
C3/B24B:	18      	CLC            ; Prepare ADC
C3/B24C:	65ED    	ADC $ED        ; Add VRAM index
C3/B24E:	AA      	TAX            ; Set RAM index

Fork: Load 1bpp row graphics, shift to fit string
C3/B24F:	DA      	PHX            ; Save RAM index
C3/B250:	C220    	REP #$20       ; 16-bit A
C3/B252:	BB      	TYX            ; ROM index
C3/B253:	BFC094C4	LDA $C494C0,X  ; 12-px row GFX
C3/B257:	64E7    	STZ $E7        ; Blank slice C
C3/B259:	64E9    	STZ $E9        ; Clear byte 4
C3/B25B:	85E8    	STA $E8        ; Set slices A+B
C3/B25D:	20BFB2  	JSR $B2BF      ; Shift pixels

Fork: Insert row segment C, copy as shadow below (2bpp)
C3/B260:	FA      	PLX            ; RAM index
C3/B261:	A5E7    	LDA $E7        ; Slices B and C
C3/B263:	E220    	SEP #$20       ; 8-bit A
C3/B265:	1FB9A27E	ORA $7EA2B9,X  ; Add WIP plane A
C3/B269:	9FB9A27E	STA $7EA2B9,X  ; Set WIP plane A
C3/B26D:	C220    	REP #$20       ; 16-bit A
C3/B26F:	4A      	LSR A          ; Shift 1 px right
C3/B270:	E220    	SEP #$20       ; 8-bit A
C3/B272:	1FBCA27E	ORA $7EA2BC,X  ; Add WIP plane B
C3/B276:	9FBCA27E	STA $7EA2BC,X  ; Set WIP plane B

Fork: Insert row segment B, copy as shadow below (2bpp)
C3/B27A:	C220    	REP #$20       ; 16-bit A
C3/B27C:	A5E8    	LDA $E8        ; Slices A and B
C3/B27E:	E220    	SEP #$20       ; 8-bit A
C3/B280:	1F99A27E	ORA $7EA299,X  ; Add WIP plane A
C3/B284:	9F99A27E	STA $7EA299,X  ; Set WIP plane A
C3/B288:	C220    	REP #$20       ; 16-bit A
C3/B28A:	4A      	LSR A          ; Shift 1 px right
C3/B28B:	E220    	SEP #$20       ; 8-bit A
C3/B28D:	1F9CA27E	ORA $7EA29C,X  ; Add WIP plane B
C3/B291:	9F9CA27E	STA $7EA29C,X  ; Set WIP plane B

Fork: Insert row segment A, copy as shadow below (2bpp)
C3/B295:	C220    	REP #$20       ; 16-bit A
C3/B297:	A5E8    	LDA $E8        ; Slices A and B
C3/B299:	E220    	SEP #$20       ; 8-bit A
C3/B29B:	EB      	XBA            ; Get slice A
C3/B29C:	1F79A27E	ORA $7EA279,X  ; Add WIP plane A
C3/B2A0:	9F79A27E	STA $7EA279,X  ; Set WIP plane A
C3/B2A4:	4A      	LSR A          ; Shift 1 px right
C3/B2A5:	1F7CA27E	ORA $7EA27C,X  ; Add WIP plane B
C3/B2A9:	9F7CA27E	STA $7EA27C,X  ; Set WIP plane B

Fork: Handle next row
C3/B2AD:	E8      	INX            ; RAM index +1
C3/B2AE:	E8      	INX            ; RAM index +1
C3/B2AF:	C8      	INY            ; ROM index +1
C3/B2B0:	C8      	INY            ; ROM index +1
C3/B2B1:	C6E5    	DEC $E5        ; One less row
C3/B2B3:	D09A    	BNE $B24F      ; Loop till last

Fork: Add character's width to line total
C3/B2B5:	7B      	TDC            ; Clear A
C3/B2B6:	68      	PLA            ; Text char...
C3/B2B7:	A58D    	LDA $8D        ; Line width
C3/B2B9:	18      	CLC            ; Prepare ADC
C3/B2BA:	65B6    	ADC $B6        ; Add char width
C3/B2BC:	858D    	STA $8D        ; Save changes
C3/B2BE:	60      	RTS

Shift VWF character's row for string insertion
C3/B2BF:	E220    	SEP #$20       ; 8-bit A
C3/B2C1:	7B      	TDC            ; Clear A
C3/B2C2:	A58D    	LDA $8D        ; Line width
C3/B2C4:	2907    	AND #$07       ; WIP tile's
C3/B2C6:	0A      	ASL A          ; Double it
C3/B2C7:	AA      	TAX            ; Index it
C3/B2C8:	C220    	REP #$20       ; 16-bit A
C3/B2CA:	7CCDB2  	JMP ($B2CD,X)  ; Shift row

Jump table for the above
C3/B2CD:	DFB2    	; 0: 4 px left
C3/B2CF:	E3B2    	; 1: 3 px left
C3/B2D1:	E7B2    	; 2: 2 px left
C3/B2D3:	EBB2    	; 3: 1 px left
C3/B2D5:	EFB2    	; 4: Unchanged
C3/B2D7:	FCB2    	; 5: 1 px right
C3/B2D9:	F8B2    	; 6: 2 px right
C3/B2DB:	F4B2    	; 7: 3 px right
C3/B2DD:	F0B2    	; 8: 4 px right (unused)

Shift VWF character's row left for string insertion
C3/B2DF:	06E7    	ASL $E7        ; Do slice B+C
C3/B2E1:	26E9    	ROL $E9        ; Do slice A
C3/B2E3:	06E7    	ASL $E7        ; Do slice B+C
C3/B2E5:	26E9    	ROL $E9        ; Do slice A
C3/B2E7:	06E7    	ASL $E7        ; Do slice B+C
C3/B2E9:	26E9    	ROL $E9        ; Do slice A
C3/B2EB:	06E7    	ASL $E7        ; Do slice B+C
C3/B2ED:	26E9    	ROL $E9        ; Do slice A
C3/B2EF:	60      	RTS

Shift VWF character's row right for string insertion
C3/B2F0:	46E9    	LSR $E9        ; Do slice A
C3/B2F2:	66E7    	ROR $E7        ; Do slice B+C
C3/B2F4:	46E9    	LSR $E9        ; Do slice A
C3/B2F6:	66E7    	ROR $E7        ; Do slice B+C
C3/B2F8:	46E9    	LSR $E9        ; Do slice A
C3/B2FA:	66E7    	ROR $E7        ; Do slice B+C
C3/B2FC:	46E9    	LSR $E9        ; Do slice A
C3/B2FE:	66E7    	ROR $E7        ; Do slice B+C
C3/B300:	60      	RTS

Set to upload VWF description, freeze CGRAM
C3/B301:	A00068  	LDY #$6800     ; $6800
C3/B304:	841B    	STY $1B        ; Set VRAM ptr
C3/B306:	A071A2  	LDY #$A271     ; 7E/A271
C3/B309:	841D    	STY $1D        ; Set src LBs
C3/B30B:	A00007  	LDY #$0700     ; Bytes: 1792
C3/B30E:	8419    	STY $19        ; Set data size
C3/B310:	A97E    	LDA #$7E       ; Bank: 7E
C3/B312:	851F    	STA $1F        ; Set src HB
C3/B314:	A901    	LDA #$01       ; CGRAM: Freeze
C3/B316:	1445    	TRB $45        ; Set NMI flag
C3/B318:	60      	RTS

Load and upload VWF graphics for all elements
C3/B319:	A600    	LDX $00        ; Elem index: 0
C3/B31B:	BF90E9D8	LDA $D8E990,X  ; Elem text char
C3/B31F:	9FC99E7E	STA $7E9EC9,X  ; Memorize it
C3/B323:	E8      	INX            ; Elem index +1
C3/B324:	E01100  	CPX #$0011     ; Terminator?
C3/B327:	D0F2    	BNE $B31B      ; Loop if not
C3/B329:	A0006C  	LDY #$6C00     ; $6C00
C3/B32C:	84F1    	STY $F1        ; Set VRAM ptr
C3/B32E:	7B      	TDC            ; Clear A
C3/B32F:	AA      	TAX            ; Elem index: 0
C3/B330:	BFC99E7E	LDA $7E9EC9,X  ; Elem text char
C3/B334:	F01C    	BEQ $B352      ; Exit if none
C3/B336:	20ECB1  	JSR $B1EC      ; Decode char
C3/B339:	DA      	PHX            ; Save index
C3/B33A:	2055B3  	JSR $B355      ; Load graphics
C3/B33D:	FA      	PLX            ; Elem index
C3/B33E:	E8      	INX            ; Elem index +1
C3/B33F:	A4F1    	LDY $F1        ; VRAM pointer
C3/B341:	2053AF  	JSR $AF53      ; Upload graphics
C3/B344:	C220    	REP #$20       ; 16-bit A
C3/B346:	A5F1    	LDA $F1        ; VRAM pointer
C3/B348:	18      	CLC            ; Prepare ADC
C3/B349:	692000  	ADC #$0020     ; Skip 4 tiles
C3/B34C:	85F1    	STA $F1        ; Save changes
C3/B34E:	E220    	SEP #$20       ; 8-bit A
C3/B350:	80DE    	BRA $B330      ; Do next element
C3/B352:	4CF40F  	JMP $0FF4      ; Dequeue upload

Load element's graphics (VWF)
C3/B355:	48      	PHA            ; Save text char
C3/B356:	A04000  	LDY #$0040     ; Bytes: 64
C3/B359:	84F3    	STY $F3        ; Set buffer size
C3/B35B:	20CDC2  	JSR $C2CD      ; Clear GFX buffer
C3/B35E:	648D    	STZ $8D        ; String width: 0
C3/B360:	64ED    	STZ $ED        ; VRAM index LB: 0
C3/B362:	64EE    	STZ $EE        ; VRAM index HB: 0
C3/B364:	68      	PLA            ; Elem text char
C3/B365:	4C27B2  	JMP $B227      ; Load graphics

73: Initialize final battle lineup
C3/B368:	20F735  	JSR $35F7      ; Reset/Stop stuff
C3/B36B:	207670  	JSR $7076      ; Reset BGs' X/Y
C3/B36E:	A902    	LDA #$02       ; Main cursor: On
C3/B370:	8546    	STA $46        ; Bar/Blinker: Off
C3/B372:	20C4B5  	JSR $B5C4      ; Load navig data
C3/B375:	20CDB5  	JSR $B5CD      ; Relocate cursor
C3/B378:	203308  	JSR $0833      ; Queue cursor OAM
C3/B37B:	205EB4  	JSR $B45E      ; Clear candidates
C3/B37E:	206DB4  	JSR $B46D      ; Reset user's list
C3/B381:	2083B4  	JSR $B483      ; Draw menu
C3/B384:	20869C  	JSR $9C86      ; Set to shift text
C3/B387:	A974    	LDA #$74       ; C3/B395
C3/B389:	8527    	STA $27        ; Queue: Sustain menu
C3/B38B:	A901    	LDA #$01       ; C3/1DE4
C3/B38D:	8526    	STA $26        ; Next: Fade-in
C3/B38F:	20680F  	JSR $0F68      ; Queue text upload
C3/B392:	4C0936  	JMP $3609      ; BRT:1 + NMI

74: Sustain final battle lineup
C3/B395:	20F9B4  	JSR $B4F9      ; Redraw candidates
C3/B398:	2024B5  	JSR $B524      ; Redraw user's list
C3/B39B:	20CAB5  	JSR $B5CA      ; Handle D-Pad
C3/B39E:	20680F  	JSR $0F68      ; Queue text upload

Fork: Handle B
C3/B3A1:	A509    	LDA $09        ; No-autofire keys
C3/B3A3:	8980    	BIT #$80       ; Pushing B?
C3/B3A5:	F02C    	BEQ $B3D3      ; Branch if not
C3/B3A7:	20140F  	JSR $0F14      ; Sound: Cursor
C3/B3AA:	A54A    	LDA $4A        ; R-List's empty?
C3/B3AC:	F068    	BEQ $B416      ; Exit if so
C3/B3AE:	C64A    	DEC $4A        ; R-List size -1
C3/B3B0:	7B      	TDC            ; Clear A
C3/B3B1:	A54A    	LDA $4A        ; R-List size
C3/B3B3:	AA      	TAX            ; Index it
C3/B3B4:	BD0502  	LDA $0205,X    ; Last R-List char
C3/B3B7:	48      	PHA            ; Save this actor
C3/B3B8:	A9FF    	LDA #$FF       ; Actor: None
C3/B3BA:	9D0502  	STA $0205,X    ; Clear R-List slot
C3/B3BD:	A600    	LDX $00        ; L-List slot: 1
C3/B3BF:	68      	PLA            ; Removed actor
C3/B3C0:	DF8A9D7E	CMP $7E9D8A,X  ; In L-List slot?
C3/B3C4:	F006    	BEQ $B3CC      ; Enable it if so
C3/B3C6:	E8      	INX            ; L-List slot +1
C3/B3C7:	E00C00  	CPX #$000C     ; Done all 12?
C3/B3CA:	D0F4    	BNE $B3C0      ; Loop if not
C3/B3CC:	A920    	LDA #$20       ; Color: User's
C3/B3CE:	9F8DAA7E	STA $7EAA8D,X  ; Set L-List name's
C3/B3D2:	60      	RTS

Fork: Handle actor selection
C3/B3D3:	A509    	LDA $09        ; No-autofire keys
C3/B3D5:	8910    	BIT #$10       ; Pushing Start?
C3/B3D7:	D030    	BNE $B409      ; Branch if so
C3/B3D9:	A508    	LDA $08        ; No-autofire keys
C3/B3DB:	8980    	BIT #$80       ; Pushing A?
C3/B3DD:	F037    	BEQ $B416      ; Exit if not
C3/B3DF:	201D0F  	JSR $0F1D      ; Sound: Click
C3/B3E2:	7B      	TDC            ; Clear A
C3/B3E3:	A54B    	LDA $4B        ; On Reset?
C3/B3E5:	F030    	BEQ $B417      ; Branch if so
C3/B3E7:	C90D    	CMP #$0D       ; On "End"?
C3/B3E9:	F01E    	BEQ $B409      ; Branch if so
C3/B3EB:	AA      	TAX            ; Clicked slot
C3/B3EC:	BF899D7E	LDA $7E9D89,X  ; Nobody there?
C3/B3F0:	3024    	BMI $B416      ; Exit if so
C3/B3F2:	7B      	TDC            ; ...
C3/B3F3:	A54B    	LDA $4B        ; Clicked slot
C3/B3F5:	3A      	DEC A          ; Now 0-12
C3/B3F6:	AA      	TAX            ; Index it
C3/B3F7:	BF8DAA7E	LDA $7EAA8D,X  ; Name color
C3/B3FB:	C920    	CMP #$20       ; Player's?
C3/B3FD:	D017    	BNE $B416      ; Exit if not
C3/B3FF:	2022B4  	JSR $B422      ; Add chosen char
C3/B402:	A54A    	LDA $4A        ; Selection count
C3/B404:	C90C    	CMP #$0C       ; Added 12 actors?
C3/B406:	F015    	BEQ $B41D      ; Go to End if so
C3/B408:	60      	RTS

Fork: Handle "End"
C3/B409:	201D0F  	JSR $0F1D      ; Sound: Click
C3/B40C:	203AB4  	JSR $B43A      ; Auto-fill list
C3/B40F:	A9FF    	LDA #$FF       ; Null value
C3/B411:	8527    	STA $27        ; Queue menu exit
C3/B413:	6426    	STZ $26        ; Next: Fade-out
C3/B415:	60      	RTS            ; ...
C3/B416:	60      	RTS

Fork: Handle "Reset"
C3/B417:	206DB4  	JSR $B46D      ; Reset user's list
C3/B41A:	E64E    	INC $4E        ; Move cursor down
C3/B41C:	60      	RTS

Fork: Put cursor on "End"
C3/B41D:	A90D    	LDA #$0D       ; Row: 14th
C3/B41F:	854E    	STA $4E        ; Set cursor's
C3/B421:	60      	RTS

Add chosen actor to player's list for final battle
C3/B422:	7B      	TDC            ; ...
C3/B423:	A54A    	LDA $4A        ; Slot to fill
C3/B425:	A8      	TAY            ; Index it
C3/B426:	A54B    	LDA $4B        ; Clicked slot
C3/B428:	AA      	TAX            ; Index it
C3/B429:	A928    	LDA #$28       ; Color: Gray
C3/B42B:	9F8CAA7E	STA $7EAA8C,X  ; Set L-Name's
C3/B42F:	BF899D7E	LDA $7E9D89,X  ; Chosen actor
C3/B433:	BB      	TYX            ; ...
C3/B434:	9D0502  	STA $0205,X    ; To user's list
C3/B437:	E64A    	INC $4A        ; R-List size +1
C3/B439:	60      	RTS

Complete player's actor list for final battle
C3/B43A:	A54A    	LDA $4A        ; R-List size
C3/B43C:	C90C    	CMP #$0C       ; 12 actors?
C3/B43E:	F01D    	BEQ $B45D      ; Exit if so
C3/B440:	7B      	TDC            ; Clear A
C3/B441:	AA      	TAX            ; L-List slot: 1
C3/B442:	BF8DAA7E	LDA $7EAA8D,X  ; Name color
C3/B446:	C920    	CMP #$20       ; Player's?
C3/B448:	D00D    	BNE $B457      ; Skip if not
C3/B44A:	7B      	TDC            ; ...
C3/B44B:	A54A    	LDA $4A        ; R-List slot
C3/B44D:	A8      	TAY            ; Index it
C3/B44E:	BF8A9D7E	LDA $7E9D8A,X  ; L-List actor
C3/B452:	990502  	STA $0205,Y    ; Add to list
C3/B455:	E64A    	INC $4A        ; R-List slot +1
C3/B457:	E8      	INX            ; L-List slot +1
C3/B458:	E00C00  	CPX #$000C     ; Done all 12?
C3/B45B:	D0E5    	BNE $B442      ; Loop if not
C3/B45D:	60      	RTS

Clear candidate list for final battle (four unused slots)
C3/B45E:	7B      	TDC            ; Clear A
C3/B45F:	AA      	TAX            ; List slot: 1
C3/B460:	A9FF    	LDA #$FF       ; Actor: None
C3/B462:	9F899D7E	STA $7E9D89,X  ; Clear slot
C3/B466:	E8      	INX            ; List slot +1
C3/B467:	E01000  	CPX #$0010     ; Done 16?...
C3/B46A:	D0F4    	BNE $B460      ; Loop if not
C3/B46C:	60      	RTS

Reset player's actor list for final battle
C3/B46D:	7B      	TDC            ; Clear A
C3/B46E:	AA      	TAX            ; List slot: 1
C3/B46F:	A9FF    	LDA #$FF       ; Actor: None
C3/B471:	9D0502  	STA $0205,X    ; Put in slot
C3/B474:	A920    	LDA #$20       ; Color: User's
C3/B476:	9F8DAA7E	STA $7EAA8D,X  ; Set name color
C3/B47A:	E8      	INX            ; List slot +1
C3/B47B:	E00C00  	CPX #$000C     ; Done all 12?
C3/B47E:	D0EF    	BNE $B46F      ; Loop if not
C3/B480:	644A    	STZ $4A        ; List size: 0
C3/B482:	60      	RTS

Draw menu for final battle
C3/B483:	A902    	LDA #$02       ; 32x64 at $0000
C3/B485:	8D0721  	STA $2107      ; Set BG1 map loc
C3/B488:	A0B9B4  	LDY #$B4B9     ; C3/B4B9
C3/B48B:	20C403  	JSR $03C4      ; Draw window
C3/B48E:	20BD0E  	JSR $0EBD      ; Upload window
C3/B491:	20D071  	JSR $71D0      ; Clear BG3 map A
C3/B494:	20D90E  	JSR $0ED9      ; Upload BG3 A+B
C3/B497:	20A971  	JSR $71A9      ; Clear BG1 map A
C3/B49A:	20AD71  	JSR $71AD      ; Clear BG1 map B
C3/B49D:	A920    	LDA #$20       ; Palette 0
C3/B49F:	8529    	STA $29        ; Color: User's
C3/B4A1:	A2F4B5  	LDX #$B5F4     ; Text ptrs loc
C3/B4A4:	A00600  	LDY #$0006     ; Strings: 3
C3/B4A7:	204E71  	JSR $714E      ; Draw End, etc.
C3/B4AA:	2089B5  	JSR $B589      ; Draw numbers
C3/B4AD:	20BDB4  	JSR $B4BD      ; List candidates
C3/B4B0:	20F9B4  	JSR $B4F9      ; Draw candidates
C3/B4B3:	20930E  	JSR $0E93      ; Upload text
C3/B4B6:	4CA10E  	JMP $0EA1      ; Upload BG1c...

Window layout for final battle lineup
C3/B4B9:	8B581C18	; 30x26 at $588B

Compile candidates for final battle
C3/B4BD:	64E6    	STZ $E6        ; List slot: 1
C3/B4BF:	7B      	TDC            ; Clear A
C3/B4C0:	AA      	TAX            ; 1st: Terra
C3/B4C1:	DA      	PHX            ; Save actor
C3/B4C2:	BD5018  	LDA $1850,X    ; Party info
C3/B4C5:	2940    	AND #$40       ; Object's off?
C3/B4C7:	F028    	BEQ $B4F1      ; Skip if so
C3/B4C9:	BD5018  	LDA $1850,X    ; Party info
C3/B4CC:	2907    	AND #$07       ; In a party?
C3/B4CE:	F021    	BEQ $B4F1      ; Skip if not
C3/B4D0:	86E7    	STX $E7        ; Save actor
C3/B4D2:	C220    	REP #$20       ; 16-bit A
C3/B4D4:	8A      	TXA            ; Actor slot
C3/B4D5:	0A      	ASL A          ; Double it
C3/B4D6:	AA      	TAX            ; Index it
C3/B4D7:	BFDB70C3	LDA $C370DB,X  ; Actor address
C3/B4DB:	A8      	TAY            ; Index it
C3/B4DC:	E220    	SEP #$20       ; 8-bit A
C3/B4DE:	B90000  	LDA $0000,Y    ; Actor in slot
C3/B4E1:	C90E    	CMP #$0E       ; Guest?
C3/B4E3:	B00C    	BCS $B4F1      ; Skip if so
C3/B4E5:	7B      	TDC            ; Clear A
C3/B4E6:	A5E6    	LDA $E6        ; List slot
C3/B4E8:	AA      	TAX            ; Index it
C3/B4E9:	A5E7    	LDA $E7        ; Actor slot
C3/B4EB:	9F8A9D7E	STA $7E9D8A,X  ; Add to list
C3/B4EF:	E6E6    	INC $E6        ; List slot +1
C3/B4F1:	FA      	PLX            ; Actor slot
C3/B4F2:	E8      	INX            ; Actor slot +1
C3/B4F3:	E01000  	CPX #$0010     ; Done all 16?
C3/B4F6:	D0C9    	BNE $B4C1      ; Loop if not
C3/B4F8:	60      	RTS

Draw list of candidates for final battle
C3/B4F9:	A0D539  	LDY #$39D5     ; Tilemap ptr
C3/B4FC:	84F5    	STY $F5        ; Set position
C3/B4FE:	7B      	TDC            ; Clear A
C3/B4FF:	AA      	TAX            ; List slot: 1
C3/B500:	204CB5  	JSR $B54C      ; Set pos, WRAM
C3/B503:	DA      	PHX            ; Save list slot
C3/B504:	7B      	TDC            ; Clear A
C3/B505:	BF8DAA7E	LDA $7EAA8D,X  ; Name palette
C3/B509:	8529    	STA $29        ; Set attributes
C3/B50B:	BF8A9D7E	LDA $7E9D8A,X  ; Actor in slot
C3/B50F:	3005    	BMI $B516      ; Blank if none
C3/B511:	2060B5  	JSR $B560      ; Draw name
C3/B514:	8003    	BRA $B519      ; Skip a line
C3/B516:	207BB5  	JSR $B57B      ; Blank slot
C3/B519:	206EB5  	JSR $B56E      ; VRAM row +2
C3/B51C:	FA      	PLX            ; List slot
C3/B51D:	E8      	INX            ; List slot +1
C3/B51E:	E00C00  	CPX #$000C     ; Done all 12?
C3/B521:	D0DD    	BNE $B500      ; Loop if not
C3/B523:	60      	RTS

Draw player's actor list for final battle
C3/B524:	A920    	LDA #$20       ; Palette 0
C3/B526:	8529    	STA $29        ; Color: User's
C3/B528:	A0F139  	LDY #$39F1     ; Tilemap ptr
C3/B52B:	84F5    	STY $F5        ; Set position
C3/B52D:	7B      	TDC            ; Clear A
C3/B52E:	AA      	TAX            ; List slot: 1
C3/B52F:	204CB5  	JSR $B54C      ; Set pos, WRAM
C3/B532:	DA      	PHX            ; Save list slot
C3/B533:	7B      	TDC            ; Clear A
C3/B534:	BD0502  	LDA $0205,X    ; Actor in slot
C3/B537:	3005    	BMI $B53E      ; Blank if none
C3/B539:	2060B5  	JSR $B560      ; Draw name
C3/B53C:	8003    	BRA $B541      ; Skip a line
C3/B53E:	207BB5  	JSR $B57B      ; Blank slot
C3/B541:	206EB5  	JSR $B56E      ; VRAM row +2
C3/B544:	FA      	PLX            ; List slot
C3/B545:	E8      	INX            ; List slot +1
C3/B546:	E00C00  	CPX #$000C     ; Done all 12?
C3/B549:	D0E4    	BNE $B52F      ; Loop if not
C3/B54B:	60      	RTS

Prepare actor name drawing for final battle lineup
C3/B54C:	A0899E  	LDY #$9E89     ; 7E/9E89
C3/B54F:	8C8121  	STY $2181      ; Set WRAM LBs
C3/B552:	C220    	REP #$20       ; 16-bit A
C3/B554:	A5F5    	LDA $F5        ; Tilemap ptr
C3/B556:	E220    	SEP #$20       ; 8-bit A
C3/B558:	8D8021  	STA $2180      ; Set position LB
C3/B55B:	EB      	XBA            ; Switch to HB
C3/B55C:	8D8021  	STA $2180      ; Set position HB
C3/B55F:	60      	RTS

Draw actor's name for final battle lineup
C3/B560:	0A      	ASL A          ; Actor x2
C3/B561:	C220    	REP #$20       ; 16-bit A
C3/B563:	AA      	TAX            ; Index it
C3/B564:	BFDB70C3	LDA $C370DB,X  ; Actor address
C3/B568:	A8      	TAY            ; Index it
C3/B569:	E220    	SEP #$20       ; 8-bit A
C3/B56B:	4C6D35  	JMP $356D      ; Draw name

Point two rows down in tilemap
C3/B56E:	C220    	REP #$20       ; 16-bit A
C3/B570:	A5F5    	LDA $F5        ; Tilemap ptr
C3/B572:	18      	CLC            ; Prepare ADC
C3/B573:	698000  	ADC #$0080     ; +2 rows down
C3/B576:	85F5    	STA $F5        ; Save changes
C3/B578:	E220    	SEP #$20       ; 8-bit A
C3/B57A:	60      	RTS

Blank actor name slot
C3/B57B:	A20600  	LDX #$0006     ; Spaces: 6
C3/B57E:	A9FF    	LDA #$FF       ; Space char
C3/B580:	8D8021  	STA $2180      ; Add to string
C3/B583:	CA      	DEX            ; One less left
C3/B584:	D0FA    	BNE $B580      ; Loop till last
C3/B586:	4CB987  	JMP $87B9      ; Draw 6 spaces

Draw both lists of numbers for final battle lineup
C3/B589:	A901    	LDA #$01       ; Number: "1"
C3/B58B:	85E6    	STA $E6        ; Set as current
C3/B58D:	A00F3A  	LDY #$3A0F     ; Tilemap ptr
C3/B590:	84F5    	STY $F5        ; Set position
C3/B592:	A20C00  	LDX #$000C     ; Numbers: 12
C3/B595:	86F1    	STX $F1        ; Set counter
C3/B597:	20ABB5  	JSR $B5AB      ; Draw left list
C3/B59A:	A901    	LDA #$01       ; Number: "1"
C3/B59C:	85E6    	STA $E6        ; Set as current
C3/B59E:	A02B3A  	LDY #$3A2B     ; Tilemap ptr
C3/B5A1:	84F5    	STY $F5        ; Set position
C3/B5A3:	A20C00  	LDX #$000C     ; Numbers: 12
C3/B5A6:	86F1    	STX $F1        ; Set counter
C3/B5A8:	4CABB5  	JMP $B5AB      ; Draw right list

Draw current list of numbers for final battle lineup
C3/B5AB:	7B      	TDC            ; Clear A
C3/B5AC:	AA      	TAX            ; Numbers done: 0
C3/B5AD:	DA      	PHX            ; Save counter
C3/B5AE:	A5E6    	LDA $E6        ; Current number
C3/B5B0:	206305  	JSR $0563      ; Turn into text
C3/B5B3:	A6F5    	LDX $F5        ; Text position
C3/B5B5:	203905  	JSR $0539      ; Draw 2 digits
C3/B5B8:	E6E6    	INC $E6        ; Number +1
C3/B5BA:	206EB5  	JSR $B56E      ; VRAM row +2
C3/B5BD:	FA      	PLX            ; Numbers done
C3/B5BE:	E8      	INX            ; Numbers done +1
C3/B5BF:	E4F1    	CPX $F1        ; Done all 12?
C3/B5C1:	D0EA    	BNE $B5AD      ; Loop if not
C3/B5C3:	60      	RTS

Load navigation data for final battle lineup
C3/B5C4:	A0D3B5  	LDY #$B5D3     ; C3/B5D3
C3/B5C7:	4C8106  	JMP $0681      ; Load navig data

Handle D-Pad for final battle lineup
C3/B5CA:	20B007  	JSR $07B0      ; Handle D-Pad
C3/B5CD:	A0D8B5  	LDY #$B5D8     ; C3/B5D8
C3/B5D0:	4CC306  	JMP $06C3      ; Relocate cursor

Navigation data for final battle lineup
C3/B5D3:	80      	; Wraps vertically
C3/B5D4:	00      	; Initial column
C3/B5D5:	00      	; Initial row
C3/B5D6:	01      	; 1 column
C3/B5D7:	0E      	; 14 rows

Cursor positions for final battle lineup
C3/B5D8:	1020    	; Reset
C3/B5DA:	202C    	; Actor 1
C3/B5DC:	2038    	; Actor 2
C3/B5DE:	2044    	; Actor 3
C3/B5E0:	2050    	; Actor 4
C3/B5E2:	205C    	; Actor 5
C3/B5E4:	2068    	; Actor 6
C3/B5E6:	2074    	; Actor 7
C3/B5E8:	2080    	; Actor 8
C3/B5EA:	208C    	; Actor 9
C3/B5EC:	2098    	; Actor 10
C3/B5EE:	20A4    	; Actor 11
C3/B5F0:	20B0    	; Actor 12
C3/B5F2:	10BC    	; End

Text pointers for final battle lineup
C3/B5F4:	FAB5    	; End
C3/B5F6:	00B6    	; Reset
C3/B5F8:	08B6    	; Determine order

Positioned text for final battle lineup
C3/B5FA:	D13F 91B7A900                  ; End
C3/B600:	5139 B1A993917700              ; Reset
C3/B608:	DD38 37C1B921B9BBFF6D          ; Determine order
        	     A3856F3F758D00

71: Initialize Colosseum item menu
C3/B619:	9C0102  	STZ $0201      ; Face Shadow: No
C3/B61C:	AD0502  	LDA $0205      ; Empty item...
C3/B61F:	206CA5  	JSR $A56C      ; Add to stock...
C3/B622:	20481B  	JSR $1B48      ; Init list vars
C3/B625:	20AC84  	JSR $84AC      ; Relocate cursor
C3/B628:	2096B6  	JSR $B696      ; Draw/Upload menu
C3/B62B:	7B      	TDC            ; Gradient set: 0
C3/B62C:	221DCAD4	JSL $D4CA1D    ; Create gradient
C3/B630:	20741B  	JSR $1B74      ; Shift & OBJ & Fade
C3/B633:	20B940  	JSR $40B9      ; Apply user font
C3/B636:	A901    	LDA #$01       ; CGRAM: Refresh
C3/B638:	0445    	TSB $45        ; Set NMI flag
C3/B63A:	20D313  	JSR $13D3      ; Refresh screen
C3/B63D:	A972    	LDA #$72       ; C3/B64B
C3/B63F:	8527    	STA $27        ; Queue: Sustain menu
C3/B641:	A902    	LDA #$02       ; Main cursor: On
C3/B643:	8546    	STA $46        ; Bar/Blinker: Off
C3/B645:	203308  	JSR $0833      ; Queue cursor OAM
C3/B648:	4C0936  	JMP $3609      ; BRT:1 + NMI

72: Sustain Colosseum item menu
C3/B64B:	A910    	LDA #$10       ; Description: On
C3/B64D:	1445    	TRB $45        ; Set menu flag
C3/B64F:	642A    	STZ $2A        ; List type: Stock
C3/B651:	20680F  	JSR $0F68      ; Queue list upload
C3/B654:	20CA1F  	JSR $1FCA      ; Handle L and R
C3/B657:	B03C    	BCS $B695      ; Exit if pushed
C3/B659:	20A984  	JSR $84A9      ; Handle D-Pad
C3/B65C:	20728A  	JSR $8A72      ; Load description

Fork: Handle A
C3/B65F:	A508    	LDA $08        ; No-autofire keys
C3/B661:	8980    	BIT #$80       ; Pushing A?
C3/B663:	F01E    	BEQ $B683      ; Branch if not
C3/B665:	7B      	TDC            ; Clear A
C3/B666:	A54B    	LDA $4B        ; Selected slot
C3/B668:	AA      	TAX            ; Index it
C3/B669:	BD6918  	LDA $1869,X    ; Item in slot
C3/B66C:	C9FF    	CMP #$FF       ; None?
C3/B66E:	F00D    	BEQ $B67D      ; Fail if so
C3/B670:	8D0502  	STA $0205      ; Set item bet
C3/B673:	201D0F  	JSR $0F1D      ; Sound: Click
C3/B676:	A975    	LDA #$75       ; C3/B724
C3/B678:	8527    	STA $27        ; Queue: Matchup
C3/B67A:	6426    	STZ $26        ; Next: Fade-out
C3/B67C:	60      	RTS

Fork: Invalid selection
C3/B67D:	202B0F  	JSR $0F2B      ; Play buzzer
C3/B680:	20F830  	JSR $30F8      ; Pixelate screen

Fork: Handle B
C3/B683:	A509    	LDA $09        ; No-autofire keys
C3/B685:	8980    	BIT #$80       ; Pushing B?
C3/B687:	F00C    	BEQ $B695      ; Exit if not
C3/B689:	20140F  	JSR $0F14      ; Sound: Cursor
C3/B68C:	A9FF    	LDA #$FF       ; Empty item
C3/B68E:	8D0502  	STA $0205      ; Clear item bet
C3/B691:	8527    	STA $27        ; Queue menu exit
C3/B693:	6426    	STZ $26        ; Next: Fade-out
C3/B695:	60      	RTS

Draw and upload Colosseum item menu
C3/B696:	A901    	LDA #$01       ; 64x32 at $0000
C3/B698:	8D0721  	STA $2107      ; Set BG1 map loc
C3/B69B:	A0FDB6  	LDY #$B6FD     ; C3/B6FD
C3/B69E:	20C403  	JSR $03C4      ; Draw message box
C3/B6A1:	A0F9B6  	LDY #$B6F9     ; C3/B6F9
C3/B6A4:	20C403  	JSR $03C4      ; Draw title box
C3/B6A7:	A001B7  	LDY #$B701     ; C3/B701
C3/B6AA:	20C403  	JSR $03C4      ; Draw desc box
C3/B6AD:	A005B7  	LDY #$B705     ; C3/B705
C3/B6B0:	20C403  	JSR $03C4      ; Draw item box
C3/B6B3:	20BD0E  	JSR $0EBD      ; Upload windows
C3/B6B6:	20D571  	JSR $71D5      ; Clear BG3 map B
C3/B6B9:	20DA71  	JSR $71DA      ; Clear BG3 map C
C3/B6BC:	20DF71  	JSR $71DF      ; Clear BG3 map D
C3/B6BF:	20DDB6  	JSR $B6DD      ; Draw title, etc.
C3/B6C2:	20EFB6  	JSR $B6EF      ; Draw desc/"Select"
C3/B6C5:	2019B3  	JSR $B319      ; Upload elements...
C3/B6C8:	20D90E  	JSR $0ED9      ; Upload BG3 A+B
C3/B6CB:	20E70E  	JSR $0EE7      ; Upload BG3 C+D
C3/B6CE:	20AD71  	JSR $71AD      ; Clear BG1 map B
C3/B6D1:	20BC85  	JSR $85BC      ; Draw inventory
C3/B6D4:	20728A  	JSR $8A72      ; Load description
C3/B6D7:	20930E  	JSR $0E93      ; Upload BG1 A+B
C3/B6DA:	4CA10E  	JMP $0EA1      ; Upload BG1 C...

Draw Colosseum menu title, clear tilemap beforehand
C3/B6DD:	20D071  	JSR $71D0      ; Clear BG3 map A
C3/B6E0:	A92C    	LDA #$2C       ; Palette 3
C3/B6E2:	8529    	STA $29        ; Color: Blue
C3/B6E4:	A009B7  	LDY #$B709     ; Text pointer
C3/B6E7:	202603  	JSR $0326      ; Draw "Colosseum"
C3/B6EA:	A920    	LDA #$20       ; Palette 0
C3/B6EC:	8529    	STA $29        ; Color: User's
C3/B6EE:	60      	RTS            ; ^ For "Select..."

Build BG3 tilemap for Colosseum item menu, excluding title
C3/B6EF:	2080B0  	JSR $B080      ; Build desc map
C3/B6F2:	A011B7  	LDY #$B711     ; Text pointer
C3/B6F5:	202603  	JSR $0326      ; Draw "Select..."
C3/B6F8:	60      	RTS

Window layout for Colosseum item menu
C3/B6F9:	8B580502	; 07x04 at $588B (Title)
C3/B6FD:	99581502	; 23x04 at $5899 ("Select...")
C3/B701:	8B591C03	; 30x05 at $598B (Description)
C3/B705:	CB5A1C0F	; 30x17 at $5ACB (Items)

Positioned text for Colosseum, "Colosseum"
C3/B709:	CD78 72AE768AA000

Positioned text for Colosseum, "Select an Item"
C3/B711:	DB78 8A8C84A0BB5483FF8FA7B9456F3F758D00

75: Initialize Colosseum matchup menu
C3/B724:	20F735  	JSR $35F7      ; Reset/Stop stuff
C3/B727:	6443    	STZ $43        ; Disable HDMA
C3/B729:	205B3B  	JSR $3B5B      ; Load skin visuals
C3/B72C:	208770  	JSR $7087      ; Get party info
C3/B72F:	A902    	LDA #$02       ; Gradient set: 2
C3/B731:	221DCAD4	JSL $D4CA1D    ; Create gradient
C3/B735:	207071  	JSR $7170      ; Queue Win1 HDMA
C3/B738:	20FA71  	JSR $71FA      ; Load GFX/pal/prize
C3/B73B:	A902    	LDA #$02       ; Main cursor: On
C3/B73D:	8546    	STA $46        ; Bar/Blinker: Off
C3/B73F:	2090BC  	JSR $BC90      ; Load navig data
C3/B742:	2099BC  	JSR $BC99      ; Relocate cursor
C3/B745:	203308  	JSR $0833      ; Queue cursor OAM
C3/B748:	2074B7  	JSR $B774      ; Queue "VS" OAM
C3/B74B:	203A19  	JSR $193A      ; Set to shift text
C3/B74E:	20A1B7  	JSR $B7A1      ; Draw menu; members
C3/B751:	A901    	LDA #$01       ; CGRAM: Refresh
C3/B753:	0445    	TSB $45        ; Set NMI flag
C3/B755:	20B940  	JSR $40B9      ; Apply user font
C3/B758:	A901    	LDA #$01       ; Min slot: 8
C3/B75A:	A012BC  	LDY #$BC12     ; C3/BC12
C3/B75D:	20DE11  	JSR $11DE      ; Queue challenger fn
C3/B760:	A976    	LDA #$76       ; C3/B77C
C3/B762:	8527    	STA $27        ; Queue: Sustain menu
C3/B764:	A901    	LDA #$01       ; C3/1DE4
C3/B766:	8526    	STA $26        ; Next: Fade-in
C3/B768:	207670  	JSR $7076      ; Reset BGs' X/Y
C3/B76B:	20680F  	JSR $0F68      ; Queue enemy upload
C3/B76E:	200936  	JSR $3609      ; BRT:1 + NMI
C3/B771:	4CA40F  	JMP $0FA4      ; Queue text upload

Queue OAM function for "VS" symbol
C3/B774:	A901    	LDA #$01       ; Min slot: 8
C3/B776:	A060BC  	LDY #$BC60     ; C3/BC60
C3/B779:	4CDE11  	JMP $11DE      ; Queue OAM fn

76: Sustain Colosseum matchup menu
C3/B77C:	20A40F  	JSR $0FA4      ; Queue text upload
C3/B77F:	2096BC  	JSR $BC96      ; Handle D-Pad
C3/B782:	A508    	LDA $08        ; No-autofire keys
C3/B784:	8980    	BIT #$80       ; Pushing A?
C3/B786:	F018    	BEQ $B7A0      ; Exit if not
C3/B788:	2059BC  	JSR $BC59      ; Actor in slot
C3/B78B:	300D    	BMI $B79A      ; Fail if nobody
C3/B78D:	8D0802  	STA $0208      ; Set challenger
C3/B790:	201D0F  	JSR $0F1D      ; Sound: Click
C3/B793:	A9FF    	LDA #$FF       ; Null value
C3/B795:	8527    	STA $27        ; Queue menu exit
C3/B797:	6426    	STZ $26        ; Next: Fade-out
C3/B799:	60      	RTS            ; Exit
C3/B79A:	202B0F  	JSR $0F2B      ; Play buzzer
C3/B79D:	20F830  	JSR $30F8      ; Pixelate screen
C3/B7A0:	60      	RTS

Draw Colosseum matchup menu and create members
C3/B7A1:	A901    	LDA #$01       ; 64x32 at $0000
C3/B7A3:	8D0721  	STA $2107      ; Set BG1 map loc
C3/B7A6:	A0ACBC  	LDY #$BCAC     ; C3/BCAC
C3/B7A9:	20C403  	JSR $03C4      ; Draw prize window
C3/B7AC:	A0B0BC  	LDY #$BCB0     ; C3/BCB0
C3/B7AF:	20C403  	JSR $03C4      ; Draw bet window
C3/B7B2:	A0B4BC  	LDY #$BCB4     ; C3/BCB4
C3/B7B5:	20C403  	JSR $03C4      ; Draw party window
C3/B7B8:	20BD0E  	JSR $0EBD      ; Upload windows
C3/B7BB:	20D071  	JSR $71D0      ; Clear BG3 map A
C3/B7BE:	A920    	LDA #$20       ; Palette 0
C3/B7C0:	8529    	STA $29        ; Color: User's
C3/B7C2:	20EABA  	JSR $BAEA      ; Create member 1
C3/B7C5:	2004BB  	JSR $BB04      ; Create member 2
C3/B7C8:	201EBB  	JSR $BB1E      ; Create member 3
C3/B7CB:	2038BB  	JSR $BB38      ; Create member 4
C3/B7CE:	A07CBD  	LDY #$BD7C     ; Text pointer
C3/B7D1:	202603  	JSR $0326      ; Draw "Select..."
C3/B7D4:	20FABB  	JSR $BBFA      ; Draw enemy name
C3/B7D7:	20BABB  	JSR $BBBA      ; Draw item bet
C3/B7DA:	20C2BB  	JSR $BBC2      ; Draw prize
C3/B7DD:	20D90E  	JSR $0ED9      ; Upload BG3 A+B
C3/B7E0:	A00050  	LDY #$5000     ; $5000
C3/B7E3:	8C1621  	STY $2116      ; Set VRAM ptr
C3/B7E6:	2077BA  	JSR $BA77      ; Blank BG1 tile 1
C3/B7E9:	20A971  	JSR $71A9      ; Clear BG1 map A
C3/B7EC:	2000B8  	JSR $B800      ; Handle Striker
C3/B7EF:	AD0102  	LDA $0201      ; Facing Shadow?
C3/B7F2:	D006    	BNE $B7FA      ; Branch if so
C3/B7F4:	206DB8  	JSR $B86D      ; Draw monster
C3/B7F7:	4C930E  	JMP $0E93      ; Upload BG1 A+B

Fork: Fighting Shadow
C3/B7FA:	2014B8  	JSR $B814      ; Do name/sprite
C3/B7FD:	4C930E  	JMP $0E93      ; Upload BG1 A+B

Check if betting Striker
C3/B800:	AD0502  	LDA $0205      ; Item bet
C3/B803:	C929    	CMP #$29       ; Striker?
C3/B805:	D00C    	BNE $B813      ; Exit if not
C3/B807:	ADBD1E  	LDA $1EBD      ; Event flags
C3/B80A:	2980    	AND #$80       ; Shadow at arena?
C3/B80C:	F005    	BEQ $B813      ; Exit if not
C3/B80E:	A901    	LDA #$01       ; Facing Shadow: Y
C3/B810:	8D0102  	STA $0201      ; Set arena's mode
C3/B813:	60      	RTS

Create Shadow's name and sprite for Colosseum
C3/B814:	2046B8  	JSR $B846      ; Draw "Shadow"
C3/B817:	A902    	LDA #$02       ; For C3/8316...
C3/B819:	0447    	TSB $47        ; See C3/BC28...
C3/B81B:	A902    	LDA #$02       ; Min slot: 16
C3/B81D:	A0F381  	LDY #$81F3     ; C3/81F3
C3/B820:	20DE11  	JSR $11DE      ; Queue OAM fn
C3/B823:	A901    	LDA #$01       ; OAM mode: 1
C3/B825:	9F49367E	STA $7E3649,X  ; Set sprite's
C3/B829:	BF4A367E	LDA $7E364A,X  ; Sprite flags
C3/B82D:	0902    	ORA #$02       ; Add H-Flip
C3/B82F:	9F4A367E	STA $7E364A,X  ; Save changes
C3/B833:	9B      	TXY            ; Queue index
C3/B834:	A938    	LDA #$38       ; Sprite X: 56
C3/B836:	85E1    	STA $E1        ; Memorize it
C3/B838:	A968    	LDA #$68       ; Sprite Y: 104
C3/B83A:	85E2    	STA $E2        ; Memorize it
C3/B83C:	7B      	TDC            ; Clear A
C3/B83D:	A903    	LDA #$03       ; Sprite set: 3
C3/B83F:	208E80  	JSR $808E      ; Set anim ptr
C3/B842:	207EBB  	JSR $BB7E      ; Set position
C3/B845:	60      	RTS

Draw Shadow's name at Colosseum
C3/B846:	7B      	TDC            ; Clear A
C3/B847:	AA      	TAX            ; 1st: Terra
C3/B848:	86E7    	STX $E7        ; Save index
C3/B84A:	C220    	REP #$20       ; 16-bit A
C3/B84C:	BFDB70C3	LDA $C370DB,X  ; Actor address
C3/B850:	AA      	TAX            ; Index it
C3/B851:	E220    	SEP #$20       ; 8-bit A
C3/B853:	BD0000  	LDA $0000,X    ; Actor in slot
C3/B856:	C903    	CMP #$03       ; Shadow?
C3/B858:	F00B    	BEQ $B865      ; Retain if so
C3/B85A:	A6E7    	LDX $E7        ; Actor index
C3/B85C:	E8      	INX            ; Index +1
C3/B85D:	E8      	INX            ; Index +1
C3/B85E:	E02000  	CPX #$0020     ; Done 16 actors?
C3/B861:	D0E5    	BNE $B848      ; Loop if not
C3/B863:	80FE    	BRA $B863      ; Freeze game...
C3/B865:	8667    	STX $67        ; Save actor index
C3/B867:	A0117C  	LDY #$7C11     ; Text position
C3/B86A:	4C6A35  	JMP $356A      ; Draw actor name

Build tilemap for Colosseum enemy
C3/B86D:	A691    	LDX $91        ; Tilemap ptr
C3/B86F:	86ED    	STX $ED        ; Set dst LBs
C3/B871:	A599    	LDA $99        ; Monster size
C3/B873:	C908    	CMP #$08       ; 8x8 tiles?
C3/B875:	F00C    	BEQ $B883      ; Branch if so
C3/B877:	A21000  	LDX #$0010     ; Tiles: 16
C3/B87A:	86F1    	STX $F1        ; Set height
C3/B87C:	A21000  	LDX #$0010     ; ...
C3/B87F:	86E0    	STX $E0        ; Set width
C3/B881:	8007    	BRA $B88A      ; Skip 3 lines
C3/B883:	A20800  	LDX #$0008     ; Tiles: 8
C3/B886:	86F1    	STX $F1        ; Set height
C3/B888:	86E0    	STX $E0        ; Set width
C3/B88A:	A97E    	LDA #$7E       ; Bank: 7E
C3/B88C:	85EF    	STA $EF        ; Set dst HB
C3/B88E:	C220    	REP #$20       ; 16-bit A
C3/B890:	A9012C  	LDA #$2C01     ; Tile 1, pal 3
C3/B893:	85E7    	STA $E7        ; Priority: Yes
C3/B895:	A6E0    	LDX $E0        ; Width in tiles
C3/B897:	A400    	LDY $00        ; Map index: 0
C3/B899:	A5E7    	LDA $E7        ; Tile attribs
C3/B89B:	97ED    	STA [$ED],Y    ; Put in tilemap
C3/B89D:	C8      	INY            ; Map index +1
C3/B89E:	C8      	INY            ; Map index +1
C3/B89F:	E6E7    	INC $E7        ; Tile number +1
C3/B8A1:	CA      	DEX            ; One less column
C3/B8A2:	D0F5    	BNE $B899      ; Loop till last
C3/B8A4:	A5ED    	LDA $ED        ; Tilemap ptr
C3/B8A6:	18      	CLC            ; Prepare ADC
C3/B8A7:	694000  	ADC #$0040     ; Go 1 row down
C3/B8AA:	85ED    	STA $ED        ; Save changes
C3/B8AC:	C6F1    	DEC $F1        ; One less row
C3/B8AE:	D0E5    	BNE $B895      ; Loop till last
C3/B8B0:	E220    	SEP #$20       ; 8-bit A
C3/B8B2:	60      	RTS

Load prize and enemy data for Colosseum matchup
C3/B8B3:	2099BB  	JSR $BB99      ; Set enemy, prize
C3/B8B6:	AD0602  	LDA $0206      ; Enemy number
C3/B8B9:	8D0242  	STA $4202      ; Set multiplicand
C3/B8BC:	A905    	LDA #$05       ; Enemy data size
C3/B8BE:	8D0342  	STA $4203      ; Set multiplier
C3/B8C1:	A01050  	LDY #$5010     ; $5010
C3/B8C4:	8C1621  	STY $2116      ; Set VRAM ptr
C3/B8C7:	EA      	NOP
C3/B8C8:	EA      	NOP
C3/B8C9:	AE1642  	LDX $4216      ; Index product
C3/B8CC:	BF0070D2	LDA $D27000,X  ; GFX ptr/8 LSBs
C3/B8D0:	85E7    	STA $E7        ; Save in RAM
C3/B8D2:	BF0170D2	LDA $D27001,X  ; Ptr MSBs; flag
C3/B8D6:	85E8    	STA $E8        ; Save in RAM
C3/B8D8:	BF0270D2	LDA $D27002,X  ; Pal/Mold info
C3/B8DC:	85F2    	STA $F2        ; Save in RAM
C3/B8DE:	BF0370D2	LDA $D27003,X  ; Palette LSBs
C3/B8E2:	85F1    	STA $F1        ; Save in RAM
C3/B8E4:	BF0470D2	LDA $D27004,X  ; Mold index LSBs
C3/B8E8:	85E9    	STA $E9        ; Save in RAM

Fork: Relocate color depth flag
C3/B8EA:	A5E8    	LDA $E8        ; 8-color palette?
C3/B8EC:	3004    	BMI $B8F2      ; Branch if so
C3/B8EE:	64FF    	STZ $FF        ; Colors: 16
C3/B8F0:	8008    	BRA $B8FA      ; Skip other case
C3/B8F2:	A901    	LDA #$01       ; Colors: 8
C3/B8F4:	85FF    	STA $FF        ; Set color depth
C3/B8F6:	A980    	LDA #$80       ; 8-color flag
C3/B8F8:	14E8    	TRB $E8        ; Clear original

Fork: Compute enemy graphics address ($E97000+8X)
C3/B8FA:	A9E9    	LDA #$E9       ; Bank: E9
C3/B8FC:	85F7    	STA $F7        ; Set base adr HB
C3/B8FE:	C220    	REP #$20       ; 16-bit A
C3/B900:	A90070  	LDA #$7000     ; E9/7000
C3/B903:	85F5    	STA $F5        ; Set base adr LBs
C3/B905:	A5E7    	LDA $E7        ; GFX ptr / 8
C3/B907:	85F9    	STA $F9        ; Init real ptr
C3/B909:	64FB    	STZ $FB        ; Clear HBs
C3/B90B:	06F9    	ASL $F9        ; Ptr LBs x2
C3/B90D:	26FB    	ROL $FB        ; Ptr HBs x2 + C
C3/B90F:	06F9    	ASL $F9        ; Ptr LBs x2
C3/B911:	26FB    	ROL $FB        ; Ptr HBs x2 + C
C3/B913:	06F9    	ASL $F9        ; Ptr LBs x2
C3/B915:	26FB    	ROL $FB        ; Ptr HBs x2 + C
C3/B917:	18      	CLC            ; Prepare ADC
C3/B918:	A5F9    	LDA $F9        ; GFX pointer LBs
C3/B91A:	65F5    	ADC $F5        ; Add base address
C3/B91C:	85F5    	STA $F5        ; Set address LBs
C3/B91E:	A5FB    	LDA $FB        ; GFX pointer HB
C3/B920:	65F7    	ADC $F7        ; Add base address
C3/B922:	85F7    	STA $F7        ; Set address HB
C3/B924:	A600    	LDX $00        ; GFX index: 0

Fork: Set address pointer and size for 8x8 mold data
C3/B926:	E220    	SEP #$20       ; 8-bit A
C3/B928:	A5F2    	LDA $F2        ; 16x16 image?
C3/B92A:	3009    	BMI $B935      ; Branch if so
C3/B92C:	A020A8  	LDY #$A820     ; D2/A820
C3/B92F:	84E3    	STY $E3        ; Set address ptr
C3/B931:	A908    	LDA #$08       ; 8-tile rows: 8
C3/B933:	8007    	BRA $B93C      ; Set data size

Fork: Set address pointer and size for 16x16 mold data
C3/B935:	A022A8  	LDY #$A822     ; D2/A822
C3/B938:	84E3    	STY $E3        ; Set address ptr
C3/B93A:	A920    	LDA #$20       ; 8-tile rows: 32
C3/B93C:	85E6    	STA $E6        ; Set rows left
C3/B93E:	8599    	STA $99        ; Set enemy size
C3/B940:	A9D2    	LDA #$D2       ; Bank: D2
C3/B942:	85E5    	STA $E5        ; Set pointer HB

Fork: Define mold index's high byte
C3/B944:	A5F2    	LDA $F2        ; Monster flags
C3/B946:	2940    	AND #$40       ; Mold index MSB
C3/B948:	2A      	ROL A          ; Put in bit 7
C3/B949:	2A      	ROL A          ; Put in Carry
C3/B94A:	2A      	ROL A          ; Put in bit 0
C3/B94B:	85EA    	STA $EA        ; Set index HB

Fork: Load address to 8x8 enemy's mold ($D2A824+8X)
C3/B94D:	A5F2    	LDA $F2        ; 16x16 image?
C3/B94F:	3009    	BMI $B95A      ; Branch if so
C3/B951:	C220    	REP #$20       ; 16-bit A
C3/B953:	A5E9    	LDA $E9        ; Mold index
C3/B955:	0A      	ASL A          ; x2
C3/B956:	0A      	ASL A          ; x4
C3/B957:	0A      	ASL A          ; x8
C3/B958:	8009    	BRA $B963      ; Set address

Fork: Load address to 16x16 enemy's mold ($D2AC24+32X)
C3/B95A:	C220    	REP #$20       ; 16-bit A
C3/B95C:	A5E9    	LDA $E9        ; Mold index
C3/B95E:	0A      	ASL A          ; x2
C3/B95F:	0A      	ASL A          ; x4
C3/B960:	0A      	ASL A          ; x8
C3/B961:	0A      	ASL A          ; x16
C3/B962:	0A      	ASL A          ; x32
C3/B963:	18      	CLC            ; Prepare ADC
C3/B964:	67E3    	ADC [$E3]      ; Add base adr
C3/B966:	85E0    	STA $E0        ; Set src LBs
C3/B968:	E220    	SEP #$20       ; 8-bit A
C3/B96A:	A9D2    	LDA #$D2       ; Bank: D2
C3/B96C:	85E2    	STA $E2        ; Set src HB

Fork: Load 8-tile row, blank tiles excluded from mold
C3/B96E:	A00800  	LDY #$0008     ; Columns: 8
C3/B971:	DA      	PHX            ; Save GFX index
C3/B972:	7B      	TDC            ; Clear A
C3/B973:	A5E6    	LDA $E6        ; Rows left
C3/B975:	AA      	TAX            ; Index it
C3/B976:	A7E0    	LDA [$E0]      ; Mold row flags
C3/B978:	9F889D7E	STA $7E9D88,X  ; For centering
C3/B97C:	FA      	PLX            ; GFX index
C3/B97D:	18      	CLC            ; Prepare ROL
C3/B97E:	5A      	PHY            ; Save column
C3/B97F:	2A      	ROL A          ; Blank tile here?
C3/B980:	48      	PHA            ; Save mold flags
C3/B981:	9005    	BCC $B988      ; Branch if blank
C3/B983:	208BBA  	JSR $BA8B      ; Load tile's GFX
C3/B986:	8003    	BRA $B98B      ; Skip a line
C3/B988:	2077BA  	JSR $BA77      ; Make blank tile
C3/B98B:	68      	PLA            ; Mold row flags
C3/B98C:	7A      	PLY            ; Columns left
C3/B98D:	88      	DEY            ; One less left
C3/B98E:	D0ED    	BNE $B97D      ; Loop till last

Fork: Handle next 8-tile row
C3/B990:	C220    	REP #$20       ; 16-bit A
C3/B992:	E6E0    	INC $E0        ; Mold data adr +1
C3/B994:	E220    	SEP #$20       ; 8-bit A
C3/B996:	C6E6    	DEC $E6        ; One less row
C3/B998:	D0D4    	BNE $B96E      ; Loop till last

Fork: Set position and load colors
C3/B99A:	20A0B9  	JSR $B9A0      ; Set tilemap ptr
C3/B99D:	4CC7BA  	JMP $BAC7      ; Load enemy pal

Position Colosseum enemy based on size
C3/B9A0:	64E0    	STZ $E0        ; Blank rows: 0
C3/B9A2:	64E4    	STZ $E4        ; Rel pos LB: 0
C3/B9A4:	64E5    	STZ $E5        ; Rel pos HB: 0
C3/B9A6:	64E3    	STZ $E3        ; Clear filled cols
C3/B9A8:	A600    	LDX $00        ; 1st: Bottom row
C3/B9AA:	A599    	LDA $99        ; Monster size
C3/B9AC:	C908    	CMP #$08       ; 8x8 tiles?
C3/B9AE:	D036    	BNE $B9E6      ; Branch if not

Fork: Count blank rows, identify filled columns (8x8)
C3/B9B0:	BF899D7E	LDA $7E9D89,X  ; Blank row here?
C3/B9B4:	D007    	BNE $B9BD      ; Branch if not
C3/B9B6:	E6E0    	INC $E0        ; Blank rows +1
C3/B9B8:	E8      	INX            ; Point 1 row up
C3/B9B9:	C908    	CMP #$08       ; Bogus...
C3/B9BB:	D0F3    	BNE $B9B0      ; Test next row
C3/B9BD:	A600    	LDX $00        ; 1st: Bottom row
C3/B9BF:	BF899D7E	LDA $7E9D89,X  ; Row's filled cols
C3/B9C3:	05E3    	ORA $E3        ; Add prior rows'
C3/B9C5:	85E3    	STA $E3        ; Save merged rows
C3/B9C7:	E8      	INX            ; Point 1 row up
C3/B9C8:	E00800  	CPX #$0008     ; Done all 8 rows?
C3/B9CB:	D0F2    	BNE $B9BF      ; Loop if not

Fork: Position 8x8 enemy based on empty columns
C3/B9CD:	66E3    	ROR $E3        ; Empty column here?
C3/B9CF:	B004    	BCS $B9D5      ; Branch if not
C3/B9D1:	E6E4    	INC $E4        ; Relative pos +1
C3/B9D3:	80F8    	BRA $B9CD      ; Test next column
C3/B9D5:	46E4    	LSR $E4        ; If odd-numbered:
C3/B9D7:	06E4    	ASL $E4        ; Relative pos -1
C3/B9D9:	C221    	REP #$21       ; 16-bit A; C-
C3/B9DB:	A5E4    	LDA $E4        ; Relative position
C3/B9DD:	69513A  	ADC #$3A51     ; X+4, Y+8 tiles
C3/B9E0:	85E7    	STA $E7        ; Save tilemap ptr
C3/B9E2:	E220    	SEP #$20       ; 8-bit A
C3/B9E4:	803B    	BRA $BA21      ; Adjust Y position

Fork: Count blank rows, identify R-Half's filled columns (16x16)
C3/B9E6:	BF899D7E	LDA $7E9D89,X  ; Row's right half
C3/B9EA:	1F8A9D7E	ORA $7E9D8A,X  ; L-Half empty too?
C3/B9EE:	D009    	BNE $B9F9      ; Branch if not
C3/B9F0:	E6E0    	INC $E0        ; Blank rows +1
C3/B9F2:	E8      	INX            ; 8-tile index +1
C3/B9F3:	E8      	INX            ; 8-tile index +1
C3/B9F4:	E02000  	CPX #$0020     ; Done all 16 rows?
C3/B9F7:	D0ED    	BNE $B9E6      ; Loop if not
C3/B9F9:	A600    	LDX $00        ; 1st: Bottom row
C3/B9FB:	BF899D7E	LDA $7E9D89,X  ; R-Half filled cols
C3/B9FF:	05E3    	ORA $E3        ; Add prior rows'
C3/BA01:	85E3    	STA $E3        ; Save merged rows
C3/BA03:	E8      	INX            ; 8-tile index +1
C3/BA04:	E8      	INX            ; 8-tile index +1
C3/BA05:	E02000  	CPX #$0020     ; Done all 16 rows?
C3/BA08:	D0F1    	BNE $B9FB      ; Loop if not

Fork: Position 16x16 enemy based on empty columns
C3/BA0A:	66E3    	ROR $E3        ; Empty column?
C3/BA0C:	B004    	BCS $BA12      ; Branch if not
C3/BA0E:	E6E4    	INC $E4        ; Relative pos +1
C3/BA10:	80F8    	BRA $BA0A      ; Test next column
C3/BA12:	46E4    	LSR $E4        ; If odd-numbered:
C3/BA14:	06E4    	ASL $E4        ; Relative pos -1
C3/BA16:	C221    	REP #$21       ; 16-bit A; C-
C3/BA18:	A5E4    	LDA $E4        ; Relative position
C3/BA1A:	694938  	ADC #$3849     ; Add base address
C3/BA1D:	85E7    	STA $E7        ; Save tilemap ptr
C3/BA1F:	E220    	SEP #$20       ; 8-bit A
C3/BA21:	4C24BA  	JMP $BA24      ; ...

Fork: Adjust Y position based on enemy and blank rows
C3/BA24:	7B      	TDC            ; Clear A
C3/BA25:	AD0602  	LDA $0206      ; Enemy number
C3/BA28:	AA      	TAX            ; Index it
C3/BA29:	BF00E8EC	LDA $ECE800,X  ; Modifier index
C3/BA2D:	C220    	REP #$20       ; 16-bit A
C3/BA2F:	0A      	ASL A          ; Double it
C3/BA30:	AA      	TAX            ; Index it
C3/BA31:	E220    	SEP #$20       ; 8-bit A
C3/BA33:	7C36BA  	JMP ($BA36,X)  ; Shift enemy

Jump table for the above
C3/BA36:	40BA    	; Shift up by 3
C3/BA38:	65BA    	; Shift down by $E0
C3/BA3A:	4FBA    	; Shift down by $E0 - 1
C3/BA3C:	57BA    	; Shift down by $E0 + 1
C3/BA3E:	5BBA    	; Shift down by $E0 - 3

Shift enemy up by 3 tiles
C3/BA40:	64E0    	STZ $E0        ; Blank rows: 0
C3/BA42:	C220    	REP #$20       ; 16-bit A
C3/BA44:	A5E7    	LDA $E7        ; Tilemap ptr
C3/BA46:	38      	SEC            ; Prepare SBC
C3/BA47:	E9C000  	SBC #$00C0     ; Go 3 rows up
C3/BA4A:	8591    	STA $91        ; Save map ptr
C3/BA4C:	E220    	SEP #$20       ; 8-bit A
C3/BA4E:	60      	RTS

Shift enemy down by $E0 - 1
C3/BA4F:	C6E0    	DEC $E0        ; Blank rows -1
C3/BA51:	1002    	BPL $BA55      ; Branch if 0+
C3/BA53:	64E0    	STZ $E0        ; Blank rows: 0
C3/BA55:	800E    	BRA $BA65      ; Shift enemy

Shift enemy down by $E0 + 1
C3/BA57:	E6E0    	INC $E0        ; Blank rows +1
C3/BA59:	800A    	BRA $BA65      ; Shift enemy

Shift enemy down by $E0 - 3
C3/BA5B:	C6E0    	DEC $E0        ; Blank rows -1
C3/BA5D:	C6E0    	DEC $E0        ; Blank rows -1
C3/BA5F:	C6E0    	DEC $E0        ; Blank rows -1
C3/BA61:	1002    	BPL $BA65      ; Branch if 0+
C3/BA63:	64E0    	STZ $E0        ; Blank rows: 0

Shift enemy down by $E0
C3/BA65:	7B      	TDC            ; ...
C3/BA66:	A5E0    	LDA $E0        ; Blank rows
C3/BA68:	C221    	REP #$21       ; 16-bit A; C-
C3/BA6A:	0A      	ASL A          ; x2
C3/BA6B:	0A      	ASL A          ; x4
C3/BA6C:	0A      	ASL A          ; x8
C3/BA6D:	0A      	ASL A          ; x16
C3/BA6E:	0A      	ASL A          ; x32
C3/BA6F:	0A      	ASL A          ; x64
C3/BA70:	65E7    	ADC $E7        ; Add map ptr
C3/BA72:	8591    	STA $91        ; Save map ptr
C3/BA74:	E220    	SEP #$20       ; 8-bit A
C3/BA76:	60      	RTS

Create a blank tile at current location in VRAM
C3/BA77:	A01000  	LDY #$0010     ; Rows: 8
C3/BA7A:	84E3    	STY $E3        ; Set loop limit
C3/BA7C:	C220    	REP #$20       ; 16-bit A
C3/BA7E:	A400    	LDY $00        ; Loop count: 0
C3/BA80:	9C1821  	STZ $2118      ; 8 px, 2 planes
C3/BA83:	C8      	INY            ; Loop count +1
C3/BA84:	C4E3    	CPY $E3        ; Done 8 rows?
C3/BA86:	D0F8    	BNE $BA80      ; Loop if not
C3/BA88:	E220    	SEP #$20       ; 8-bit A
C3/BA8A:	60      	RTS

Upload current tile from monster's tileset
C3/BA8B:	A5FF    	LDA $FF        ; Has 8 colors?
C3/BA8D:	D007    	BNE $BA96      ; Branch if so
C3/BA8F:	A01000  	LDY #$0010     ; Bytes: 32
C3/BA92:	84E3    	STY $E3        ; Set loop limit
C3/BA94:	801C    	BRA $BAB2      ; Load tile GFX

Fork: Load 8-color tile, encode as 4bpp
C3/BA96:	A00800  	LDY #$0008     ; Bytes: 16
C3/BA99:	84E3    	STY $E3        ; Set loop limit
C3/BA9B:	20B2BA  	JSR $BAB2      ; Load rows' LSBs
C3/BA9E:	9B      	TXY            ; ...
C3/BA9F:	A20800  	LDX #$0008     ; Rows left: 8
C3/BAA2:	7B      	TDC            ; Clear A
C3/BAA3:	B7F5    	LDA [$F5],Y    ; GFX row's MSBs
C3/BAA5:	C220    	REP #$20       ; 16-bit A
C3/BAA7:	8D1821  	STA $2118      ; Save in VRAM
C3/BAAA:	E220    	SEP #$20       ; 8-bit A
C3/BAAC:	C8      	INY            ; GFX index +1
C3/BAAD:	CA      	DEX            ; One less row
C3/BAAE:	D0F3    	BNE $BAA3      ; Loop till last
C3/BAB0:	BB      	TYX            ; GFX index
C3/BAB1:	60      	RTS

Fork: Upload specified number of words
C3/BAB2:	9B      	TXY            ; GFX index
C3/BAB3:	A600    	LDX $00        ; Loop count: 0
C3/BAB5:	C220    	REP #$20       ; 16-bit A
C3/BAB7:	B7F5    	LDA [$F5],Y    ; 8 px, 2 planes
C3/BAB9:	8D1821  	STA $2118      ; Save in VRAM
C3/BABC:	C8      	INY            ; GFX index +1
C3/BABD:	C8      	INY            ; GFX index +1
C3/BABE:	E8      	INX            ; Loop count +1
C3/BABF:	E4E3    	CPX $E3        ; Beyond range?
C3/BAC1:	D0F4    	BNE $BAB7      ; Loop if not
C3/BAC3:	E220    	SEP #$20       ; 8-bit A
C3/BAC5:	BB      	TYX            ; GFX index
C3/BAC6:	60      	RTS

Load monster's palette
C3/BAC7:	C220    	REP #$20       ; 16-bit A
C3/BAC9:	A5F1    	LDA $F1        ; Palette index
C3/BACB:	29FF03  	AND #$03FF     ; Clear flags
C3/BACE:	0A      	ASL A          ; x2
C3/BACF:	0A      	ASL A          ; x4
C3/BAD0:	0A      	ASL A          ; x8
C3/BAD1:	0A      	ASL A          ; x16
C3/BAD2:	AA      	TAX            ; Index it
C3/BAD3:	E220    	SEP #$20       ; 8-bit A
C3/BAD5:	A0A930  	LDY #$30A9     ; 7E/30A9
C3/BAD8:	8C8121  	STY $2181      ; Set WRAM LBs
C3/BADB:	A02000  	LDY #$0020     ; Colors: 16
C3/BADE:	BF2078D2	LDA $D27820,X  ; Color data
C3/BAE2:	8D8021  	STA $2180      ; To BG pal 3
C3/BAE5:	E8      	INX            ; ROM index +1
C3/BAE6:	88      	DEY            ; One less byte
C3/BAE7:	D0F5    	BNE $BADE      ; Loop till last
C3/BAE9:	60      	RTS

Create Colosseum member 1
C3/BAEA:	A46D    	LDY $6D        ; Actor's address
C3/BAEC:	F015    	BEQ $BB03      ; Exit if nobody
C3/BAEE:	8467    	STY $67        ; Memorize it
C3/BAF0:	A04F7E  	LDY #$7E4F     ; Text position
C3/BAF3:	2052BB  	JSR $BB52      ; Draw name; OAM
C3/BAF6:	A920    	LDA #$20       ; Sprite's X: 32
C3/BAF8:	85E1    	STA $E1        ; Memorize it
C3/BAFA:	A9A8    	LDA #$A8       ; Sprite's Y: 168
C3/BAFC:	85E2    	STA $E2        ; Memorize it
C3/BAFE:	A569    	LDA $69        ; Actor's slot
C3/BB00:	2060BB  	JSR $BB60      ; Init sprite
C3/BB03:	60      	RTS

Create Colosseum member 2
C3/BB04:	A46F    	LDY $6F        ; Actor's address
C3/BB06:	F015    	BEQ $BB1D      ; Exit if nobody
C3/BB08:	8467    	STY $67        ; Memorize it
C3/BB0A:	A05D7E  	LDY #$7E5D     ; Text position
C3/BB0D:	2052BB  	JSR $BB52      ; Draw name; OAM
C3/BB10:	A958    	LDA #$58       ; Sprite's X: 88
C3/BB12:	85E1    	STA $E1        ; Memorize it
C3/BB14:	A9A8    	LDA #$A8       ; Sprite's Y: 168
C3/BB16:	85E2    	STA $E2        ; Memorize it
C3/BB18:	A56A    	LDA $6A        ; Actor
C3/BB1A:	2060BB  	JSR $BB60      ; Init sprite
C3/BB1D:	60      	RTS

Create Colosseum member 3
C3/BB1E:	A471    	LDY $71        ; Actor's address
C3/BB20:	F015    	BEQ $BB37      ; Exit if nobody
C3/BB22:	8467    	STY $67        ; Memorize it
C3/BB24:	A06B7E  	LDY #$7E6B     ; Text position
C3/BB27:	2052BB  	JSR $BB52      ; Draw name; OAM
C3/BB2A:	A990    	LDA #$90       ; Sprite's X: 144
C3/BB2C:	85E1    	STA $E1        ; Memorize it
C3/BB2E:	A9A8    	LDA #$A8       ; Sprite's Y: 168
C3/BB30:	85E2    	STA $E2        ; Memorize it
C3/BB32:	A56B    	LDA $6B        ; Actor's slot
C3/BB34:	2060BB  	JSR $BB60      ; Init sprite
C3/BB37:	60      	RTS

Create Colosseum member 4
C3/BB38:	A473    	LDY $73        ; Actor's address
C3/BB3A:	F015    	BEQ $BB51      ; Exit if nobody
C3/BB3C:	8467    	STY $67        ; Memorize it
C3/BB3E:	A0797E  	LDY #$7E79     ; Text position
C3/BB41:	2052BB  	JSR $BB52      ; Draw name; OAM
C3/BB44:	A9C8    	LDA #$C8       ; Sprite's X: 200
C3/BB46:	85E1    	STA $E1        ; Memorize it
C3/BB48:	A9A8    	LDA #$A8       ; Sprite's Y: 168
C3/BB4A:	85E2    	STA $E2        ; Memorize it
C3/BB4C:	A56C    	LDA $6C        ; Actor's slot
C3/BB4E:	2060BB  	JSR $BB60      ; Init sprite
C3/BB51:	60      	RTS

Draw Colosseum member's name, queue sprite function
C3/BB52:	206A35  	JSR $356A      ; Draw actor name
C3/BB55:	A902    	LDA #$02       ; Min slot: 16
C3/BB57:	A0F381  	LDY #$81F3     ; C3/81F3
C3/BB5A:	20DE11  	JSR $11DE      ; Queue OAM fn
C3/BB5D:	9B      	TXY            ; Queue index
C3/BB5E:	7B      	TDC            ; Clear A
C3/BB5F:	60      	RTS

Initialize Colosseum actor sprite, excluding enemy Shadow
C3/BB60:	0A      	ASL A          ; Actor x2
C3/BB61:	AA      	TAX            ; Index it
C3/BB62:	C220    	REP #$20       ; 16-bit A
C3/BB64:	BFDB70C3	LDA $C370DB,X  ; Actor address
C3/BB68:	AA      	TAX            ; Index it
C3/BB69:	E220    	SEP #$20       ; 8-bit A
C3/BB6B:	BD1400  	LDA $0014,X    ; Status
C3/BB6E:	2920    	AND #$20       ; Imp?
C3/BB70:	F005    	BEQ $BB77      ; Branch if not
C3/BB72:	7B      	TDC            ; Clear A
C3/BB73:	A90F    	LDA #$0F       ; Use Imp set
C3/BB75:	8004    	BRA $BB7B      ; Skip 2 lines
C3/BB77:	7B      	TDC            ; Clear A
C3/BB78:	BD0100  	LDA $0001,X    ; Sprite set
C3/BB7B:	208E80  	JSR $808E      ; Set anim ptr
C3/BB7E:	A9D8    	LDA #$D8       ; Bank: D8
C3/BB80:	99CA35  	STA $35CA,Y    ; Set ptr HB
C3/BB83:	A5E1    	LDA $E1        ; X position
C3/BB85:	99CA33  	STA $33CA,Y    ; Set sprite's
C3/BB88:	A5E2    	LDA $E2        ; Y position
C3/BB8A:	994A34  	STA $344A,Y    ; Set sprite's
C3/BB8D:	7B      	TDC            ; Clear A
C3/BB8E:	99CB33  	STA $33CB,Y    ; No use...
C3/BB91:	994B34  	STA $344B,Y    ; No use...
C3/BB94:	A900    	LDA #$00       ; Clear A
C3/BB96:	48      	PHA            ; Put on stack
C3/BB97:	AB      	PLB            ; Set DB to 0
C3/BB98:	60      	RTS

Load opponent and prize data for item bet
C3/BB99:	7B      	TDC            ; Clear A
C3/BB9A:	AD0502  	LDA $0205      ; Item bet
C3/BB9D:	C220    	REP #$20       ; 16-bit A
C3/BB9F:	0A      	ASL A          ; x2
C3/BBA0:	0A      	ASL A          ; x4
C3/BBA1:	AA      	TAX            ; Index it
C3/BBA2:	E220    	SEP #$20       ; 8-bit A
C3/BBA4:	BF00F2D0	LDA $D0F200,X  ; Opponent
C3/BBA8:	8D0602  	STA $0206      ; Save in RAM
C3/BBAB:	BF02F2D0	LDA $D0F202,X  ; Prize
C3/BBAF:	8D0702  	STA $0207      ; Save in RAM
C3/BBB2:	BF03F2D0	LDA $D0F203,X  ; Hide Prize flag
C3/BBB6:	8D0902  	STA $0209      ; Save in RAM
C3/BBB9:	60      	RTS            ; ^ Read below

Draw Colosseum bet
C3/BBBA:	AD0502  	LDA $0205      ; Item bet
C3/BBBD:	A2EF78  	LDX #$78EF     ; Text position
C3/BBC0:	800E    	BRA $BBD0      ; Draw item name

Draw Colosseum prize
C3/BBC2:	AD0902  	LDA $0209      ; Hide prize?
C3/BBC5:	F003    	BEQ $BBCA      ; Branch if not
C3/BBC7:	4CF3BB  	JMP $BBF3      ; Draw "???..."
C3/BBCA:	AD0702  	LDA $0207      ; Prize
C3/BBCD:	A2D178  	LDX #$78D1     ; Tilemap ptr
C3/BBD0:	48      	PHA            ; Save item
C3/BBD1:	A08B9E  	LDY #$9E8B     ; 7E/9E8B
C3/BBD4:	8C8121  	STY $2181      ; Set WRAM LBs
C3/BBD7:	C220    	REP #$20       ; 16-bit A
C3/BBD9:	8A      	TXA            ; Tilemap ptr
C3/BBDA:	8F899E7E	STA $7E9E89    ; Set position
C3/BBDE:	E220    	SEP #$20       ; 8-bit A
C3/BBE0:	AD1242  	LDA $4212      ; PPU status
C3/BBE3:	2940    	AND #$40       ; H-Blank?
C3/BBE5:	F0F9    	BEQ $BBE0      ; Loop if not
C3/BBE7:	68      	PLA            ; Item
C3/BBE8:	204F88  	JSR $884F      ; Load "<item>:"
C3/BBEB:	7B      	TDC            ; Terminator
C3/BBEC:	8F949E7E	STA $7E9E94    ; Remove ":"
C3/BBF0:	4CB987  	JMP $87B9      ; Draw item name

Fork: Draw question marks
C3/BBF3:	A08EBD  	LDY #$BD8E     ; Text pointer
C3/BBF6:	20F902  	JSR $02F9      ; Draw string
C3/BBF9:	60      	RTS

Draw monster's name for Colosseum
C3/BBFA:	C220    	REP #$20       ; 16-bit A
C3/BBFC:	A9117C  	LDA #$7C11     ; Tilemap ptr
C3/BBFF:	8F899E7E	STA $7E9E89    ; Set position
C3/BC03:	E220    	SEP #$20       ; 8-bit A
C3/BC05:	20645A  	JSR $5A64      ; Define source
C3/BC08:	7B      	TDC            ; ...
C3/BC09:	AD0602  	LDA $0206      ; Opponent
C3/BC0C:	20F28B  	JSR $8BF2      ; Load name
C3/BC0F:	4CB987  	JMP $87B9      ; Draw name

Update Colosseum challenger's name and sprite
C3/BC12:	8B      	PHB            ; Save DB
C3/BC13:	A900    	LDA #$00       ; Zero A
C3/BC15:	48      	PHA            ; Put on stack
C3/BC16:	AB      	PLB            ; Set DB to 0
C3/BC17:	7B      	TDC            ; Clear A
C3/BC18:	A54B    	LDA $4B        ; Cursor slot
C3/BC1A:	0A      	ASL A          ; Double it
C3/BC1B:	AA      	TAX            ; Index it
C3/BC1C:	B46D    	LDY $6D,X      ; Actor address
C3/BC1E:	F02C    	BEQ $BC4C      ; Blank if nobody
C3/BC20:	8467    	STY $67        ; Memorize it
C3/BC22:	A0357C  	LDY #$7C35     ; Text position
C3/BC25:	206A35  	JSR $356A      ; Draw actor name
C3/BC28:	A902    	LDA #$02       ; Temp sprite: Y
C3/BC2A:	0447    	TSB $47        ; Set menu flag
C3/BC2C:	A902    	LDA #$02       ; Min slot: 16
C3/BC2E:	A0C982  	LDY #$82C9     ; C3/82C9
C3/BC31:	20DE11  	JSR $11DE      ; Queue OAM fn
C3/BC34:	A901    	LDA #$01       ; Anim mode: 1
C3/BC36:	9F49367E	STA $7E3649,X  ; Set sprite's
C3/BC3A:	9B      	TXY            ; Queue index
C3/BC3B:	7B      	TDC            ; Clear A
C3/BC3C:	A9B8    	LDA #$B8       ; Sprite's X: 184
C3/BC3E:	85E1    	STA $E1        ; Memorize it
C3/BC40:	A968    	LDA #$68       ; Sprite's Y: 104
C3/BC42:	85E2    	STA $E2        ; Memorize it
C3/BC44:	2059BC  	JSR $BC59      ; Actor's slot
C3/BC47:	2060BB  	JSR $BB60      ; Init sprite
C3/BC4A:	8003    	BRA $BC4F      ; Skip a line
C3/BC4C:	2052BC  	JSR $BC52      ; Blank name
C3/BC4F:	AB      	PLB            ; Restore DB
C3/BC50:	38      	SEC            ; Set to requeue
C3/BC51:	60      	RTS

Blank challenger's name
C3/BC52:	A073BD  	LDY #$BD73     ; Text pointer
C3/BC55:	202603  	JSR $0326      ; Draw 6 spaces
C3/BC58:	60      	RTS

Get party actor indicated by cursor
C3/BC59:	7B      	TDC            ; Clear A
C3/BC5A:	A54B    	LDA $4B        ; Cursor slot
C3/BC5C:	AA      	TAX            ; Index it
C3/BC5D:	B569    	LDA $69,X      ; Actor slot
C3/BC5F:	60      	RTS

Update "VS" symbol from Colosseum
C3/BC60:	AA      	TAX            ; Index mode
C3/BC61:	7C64BC  	JMP ($BC64,X)  ; Handle mode

Jump table for the above
C3/BC64:	68BC    	; Initialize sprite
C3/BC66:	8BBC    	; Sustain sprite

Mode 0: Initialize sprite
C3/BC68:	A62D    	LDX $2D        ; Queue index
C3/BC6A:	C220    	REP #$20       ; 16-bit A
C3/BC6C:	A911ED  	LDA #$ED11     ; Anim table ptr
C3/BC6F:	9DC932  	STA $32C9,X    ; Set sprite's
C3/BC72:	A97000  	LDA #$0070     ; X: 112
C3/BC75:	9DCA33  	STA $33CA,X    ; Set sprite's
C3/BC78:	A96000  	LDA #$0060     ; Y: 96
C3/BC7B:	9D4A34  	STA $344A,X    ; Set sprite's
C3/BC7E:	E220    	SEP #$20       ; 8-bit A
C3/BC80:	FE4936  	INC $3649,X    ; Mode +1
C3/BC83:	A9D8    	LDA #$D8       ; Bank: D8
C3/BC85:	9DCA35  	STA $35CA,X    ; Set ptr HB
C3/BC88:	207112  	JSR $1271      ; Set pose timer

Mode 1: Sustain sprite
C3/BC8B:	208C12  	JSR $128C      ; Define OAM
C3/BC8E:	38      	SEC            ; Set to requeue
C3/BC8F:	60      	RTS

Load navigation data for Colosseum matchup menu
C3/BC90:	A09FBC  	LDY #$BC9F     ; C3/BC9F
C3/BC93:	4C8106  	JMP $0681      ; Load navig data

Handle D-Pad for Colosseum matchup menu
C3/BC96:	20B007  	JSR $07B0      ; Handle D-Pad
C3/BC99:	A0A4BC  	LDY #$BCA4     ; C3/BCA4
C3/BC9C:	4CC306  	JMP $06C3      ; Relocate cursor

Navigation data for Colosseum matchup menu
C3/BC9F:	01      	; Wraps horizontally
C3/BCA0:	00      	; Initial column
C3/BCA1:	00      	; Initial row
C3/BCA2:	04      	; 4 columns
C3/BCA3:	01      	; 1 row

Cursor positions for Colosseum matchup menu
C3/BCA4:	10B0    	; Member 1
C3/BCA6:	48B0    	; Member 2
C3/BCA8:	80B0    	; Member 3
C3/BCAA:	B8B0    	; Member 4

Window layout for Colosseum matchup menu
C3/BCAC:	8B580D02	; 15x4 at $588B (Prize)
C3/BCB0:	A9580D02	; 15x4 at $58A9 (Bet)
C3/BCB4:	CB5C1C07	; 30x9 at $5CCB (Party)

Load arena graphics, tilemap, and colors
C3/BCB8:	C220    	REP #$20       ; 16-bit A
C3/BCBA:	AF8C16E7	LDA $E7168C    ; E8/0C49
C3/BCBE:	85F3    	STA $F3        ; Set src LBs
C3/BCC0:	E220    	SEP #$20       ; 8-bit A
C3/BCC2:	AF8E16E7	LDA $E7168E    ; Bank: E8
C3/BCC6:	85F5    	STA $F5        ; Set src HB
C3/BCC8:	205FBD  	JSR $BD5F      ; Unpack GFX A
C3/BCCB:	A00068  	LDY #$6800     ; $6800
C3/BCCE:	8C1621  	STY $2116      ; Set VRAM ptr
C3/BCD1:	A00010  	LDY #$1000     ; End: 7E/C68C
C3/BCD4:	84E7    	STY $E7        ; Set src end
C3/BCD6:	A600    	LDX $00        ; 1st: 7E/B68D
C3/BCD8:	2033BD  	JSR $BD33      ; Upload GFX A

Fork: Unpack and upload graphics for upper half
C3/BCDB:	C220    	REP #$20       ; 16-bit A
C3/BCDD:	AF9216E7	LDA $E71692    ; E8/1841
C3/BCE1:	85F3    	STA $F3        ; Set src LBs
C3/BCE3:	E220    	SEP #$20       ; 8-bit A
C3/BCE5:	AF9416E7	LDA $E71694    ; Bank: E8
C3/BCE9:	85F5    	STA $F5        ; Set src HB
C3/BCEB:	205FBD  	JSR $BD5F      ; Unpack GFX B
C3/BCEE:	A00070  	LDY #$7000     ; $7000
C3/BCF1:	8C1621  	STY $2116      ; Set VRAM ptr
C3/BCF4:	A00010  	LDY #$1000     ; End: 7E/C68C
C3/BCF7:	84E7    	STY $E7        ; Set src end
C3/BCF9:	A600    	LDX $00        ; 1st: 7E/B68D
C3/BCFB:	2033BD  	JSR $BD33      ; Upload GFX B

Fork: Unpack battle tilemap, convert to menu format
C3/BCFE:	C220    	REP #$20       ; 16-bit A
C3/BD00:	AF7A18E7	LDA $E7187A    ; E7/652B
C3/BD04:	85F3    	STA $F3        ; Set src LBs
C3/BD06:	E220    	SEP #$20       ; 8-bit A
C3/BD08:	A9E7    	LDA #$E7       ; Bank: E7
C3/BD0A:	85F5    	STA $F5        ; Set src HB
C3/BD0C:	205FBD  	JSR $BD5F      ; Unpack map
C3/BD0F:	2045BD  	JSR $BD45      ; Convert map

Fork: Load colors
C3/BD12:	C220    	REP #$20       ; 16-bit A
C3/BD14:	A9B00A  	LDA #$0AB0     ; E7/0AB0
C3/BD17:	85E7    	STA $E7        ; Set src LBs
C3/BD19:	E220    	SEP #$20       ; 8-bit A
C3/BD1B:	A9E7    	LDA #$E7       ; Bank: E7
C3/BD1D:	85E9    	STA $E9        ; Set src HB
C3/BD1F:	A2C930  	LDX #$30C9     ; 7E/30C9
C3/BD22:	8E8121  	STX $2181      ; Set WRAM LBs
C3/BD25:	A400    	LDY $00        ; Index: 0
C3/BD27:	B7E7    	LDA [$E7],Y    ; Color data
C3/BD29:	8D8021  	STA $2180      ; To BG pal 4/5/6
C3/BD2C:	C8      	INY            ; Index +1
C3/BD2D:	C06000  	CPY #$0060     ; Done 48 colors?
C3/BD30:	D0F5    	BNE $BD27      ; Loop if not
C3/BD32:	60      	RTS

Upload current graphics set for arena background
C3/BD33:	C220    	REP #$20       ; 16-bit A
C3/BD35:	BF8DB67E	LDA $7EB68D,X  ; 8 px, 2 planes
C3/BD39:	8D1821  	STA $2118      ; Save in VRAM
C3/BD3C:	E8      	INX            ; Index +1
C3/BD3D:	E8      	INX            ; Index +1
C3/BD3E:	E4E7    	CPX $E7        ; Past range?
C3/BD40:	D0F3    	BNE $BD35      ; Loop if not
C3/BD42:	E220    	SEP #$20       ; 8-bit A
C3/BD44:	60      	RTS

Convert and relocate decompressed arena tilemap
C3/BD45:	A600    	LDX $00        ; Index: 0
C3/BD47:	C220    	REP #$20       ; 16-bit A
C3/BD49:	BF8DB67E	LDA $7EB68D,X  ; Attributes
C3/BD4D:	38      	SEC            ; Prepare SBC
C3/BD4E:	E98003  	SBC #$0380     ; Tile num -896
C3/BD51:	9F49597E	STA $7E5949,X  ; Put in BG2a
C3/BD55:	E8      	INX            ; Index +1
C3/BD56:	E8      	INX            ; Index +1
C3/BD57:	E08005  	CPX #$0580     ; Done 704?
C3/BD5A:	D0ED    	BNE $BD49      ; Loop if not
C3/BD5C:	E220    	SEP #$20       ; 8-bit A
C3/BD5E:	60      	RTS

Decompress data for arena background
C3/BD5F:	A08DB6  	LDY #$B68D     ; 7E/B68D
C3/BD62:	84F6    	STY $F6        ; Set dst LBs
C3/BD64:	A97E    	LDA #$7E       ; Bank: 7E
C3/BD66:	85F8    	STA $F8        ; Set dst HB
C3/BD68:	8B      	PHB            ; Save DB
C3/BD69:	A97E    	LDA #$7E       ; Bank: 7E
C3/BD6B:	48      	PHA            ; Put on stack
C3/BD6C:	AB      	PLB            ; Set DB to 7E
C3/BD6D:	226DFFC2	JSL $C2FF6D    ; Unpack data
C3/BD71:	AB      	PLB            ; Restore DB
C3/BD72:	60      	RTS

Positioned spaces for blanking challenger's name
C3/BD73:	357C FFFFFFFFFFFF00

Positioned Colosseum text, "Select the challenger"
C3/BD7C:	197D 81C3897BB977BFBB6DA3856F3F758D00

Positioned Colosseum text, "?????????????"
C3/BD8E:	1179 CBCBCBCBCBCBCBCB00

Set to condense BG3 text in SwdTech naming menu
C3/BD99:	A600    	LDX $00        ; Index: 0
C3/BD9B:	BFF3BDC3	LDA $C3BDF3,X  ; BG3 V-Pan data
C3/BD9F:	9FC99B7E	STA $7E9BC9,X  ; Save in RAM
C3/BDA3:	E8      	INX            ; Index +1
C3/BDA4:	E00D00  	CPX #$000D     ; End of table?
C3/BDA7:	D0F2    	BNE $BD9B      ; Loop if not
C3/BDA9:	A902    	LDA #$02       ; 1Rx2B to PPU
C3/BDAB:	8D5043  	STA $4350      ; Set DMA mode
C3/BDAE:	A912    	LDA #$12       ; $2112
C3/BDB0:	8D5143  	STA $4351      ; To BG3 V-Scroll
C3/BDB3:	A0C99B  	LDY #$9BC9     ; 7E/9BC9
C3/BDB6:	8C5243  	STY $4352      ; Set src LBs
C3/BDB9:	A97E    	LDA #$7E       ; Bank: 7E
C3/BDBB:	8D5443  	STA $4354      ; Set src HB
C3/BDBE:	A97E    	LDA #$7E       ; ...
C3/BDC0:	8D5743  	STA $4357      ; Set indir HB
C3/BDC3:	A920    	LDA #$20       ; Channel: 5
C3/BDC5:	0443    	TSB $43        ; Queue HDMA-5
C3/BDC7:	A902    	LDA #$02       ; 1Rx2B to PPU
C3/BDC9:	8D6043  	STA $4360      ; Set DMA mode
C3/BDCC:	A911    	LDA #$11       ; $2111
C3/BDCE:	8D6143  	STA $4361      ; To BG3 H-Scroll
C3/BDD1:	A0E6BD  	LDY #$BDE6     ; C3/BDE6
C3/BDD4:	8C6243  	STY $4362      ; Set src LBs
C3/BDD7:	A9C3    	LDA #$C3       ; Bank: C3
C3/BDD9:	8D6443  	STA $4364      ; Set src HB
C3/BDDC:	A9C3    	LDA #$C3       ; ...
C3/BDDE:	8D6743  	STA $4367      ; Set indir HB
C3/BDE1:	A940    	LDA #$40       ; Channel: 6
C3/BDE3:	0443    	TSB $43        ; Queue HDMA-6
C3/BDE5:	60      	RTS

BG3 H-Shift table for SwdTech naming menu (merges tilemaps)
C3/BDE6:	4F 0001 	; Title, desc
C3/BDE9:	50 0000 	; Option rows 1-5
C3/BDEC:	30 0000 	; Option rows 6-8
C3/BDEF:	10 0001 	; Offscreen row
C3/BDF2:	00      	; End

BG3 V-Shift table for SwdTech naming menu (condenses text)
C3/BDF3:	4F 0200 	; Title, desc
C3/BDF6:	50 B0FF 	; Option rows 1-5
C3/BDF9:	30 B0FF 	; Option rows 6-8
C3/BDFC:	10 0000 	; Offscreen row
C3/BDFF:	00      	; End

3F: Initialize SwdTech naming menu
C3/BE00:	20F735  	JSR $35F7      ; Reset/Stop stuff
C3/BE03:	207670  	JSR $7076      ; Reset BGs' X/Y
C3/BE06:	A941    	LDA #$41       ; 64x32 at $4000
C3/BE08:	8D0921  	STA $2109      ; Set BG3 map loc
C3/BE0B:	A902    	LDA #$02       ; Main cursor: On
C3/BE0D:	8546    	STA $46        ; Bar/Blinker: Off
C3/BE0F:	644A    	STZ $4A        ; Char tbl index: 0
C3/BE11:	645D    	STZ $5D        ; List cursor col: 1
C3/BE13:	645F    	STZ $5F        ; List cursor row: 1
C3/BE15:	207FC0  	JSR $C07F      ; Load navig data
C3/BE18:	2088C0  	JSR $C088      ; Relocate cursor
C3/BE1B:	203308  	JSR $0833      ; Queue cursor OAM
C3/BE1E:	2023C1  	JSR $C123      ; Draw menu; VWF GFX
C3/BE21:	A901    	LDA #$01       ; Min slot: 8
C3/BE23:	A057C3  	LDY #$C357     ; C3/C357
C3/BE26:	20DE11  	JSR $11DE      ; Queue large arrow
C3/BE29:	2099BD  	JSR $BD99      ; Set to shift text
C3/BE2C:	A940    	LDA #$40       ; C3/BE37
C3/BE2E:	8527    	STA $27        ; Queue: Choice 1
C3/BE30:	A901    	LDA #$01       ; C3/1DE4
C3/BE32:	8526    	STA $26        ; Next: Fade-in
C3/BE34:	4C0936  	JMP $3609      ; BRT:1 + NMI

40: Handle SwdTech naming choice 1
C3/BE37:	2033C0  	JSR $C033      ; Set to upload name
C3/BE3A:	2085C0  	JSR $C085      ; Handle D-Pad
C3/BE3D:	2053BF  	JSR $BF53      ; Handle L and R
C3/BE40:	A508    	LDA $08        ; No-autofire keys
C3/BE42:	8980    	BIT #$80       ; Pushing A?
C3/BE44:	F021    	BEQ $BE67      ; Branch if not
C3/BE46:	201D0F  	JSR $0F1D      ; Sound: Click
C3/BE49:	20F9C2  	JSR $C2F9      ; Create small arrow
C3/BE4C:	A54D    	LDA $4D        ; Cursor column
C3/BE4E:	855E    	STA $5E        ; Set return loc
C3/BE50:	A54B    	LDA $4B        ; Cursor slot
C3/BE52:	8528    	STA $28        ; Set altered slot
C3/BE54:	209FC0  	JSR $C09F      ; Load navig data
C3/BE57:	A55D    	LDA $5D        ; Former list column
C3/BE59:	854D    	STA $4D        ; Set cursor column
C3/BE5B:	A55F    	LDA $5F        ; Former list row
C3/BE5D:	854E    	STA $4E        ; Set cursor row
C3/BE5F:	20A8C0  	JSR $C0A8      ; Relocate cursor
C3/BE62:	A941    	LDA #$41       ; C3/BE7A
C3/BE64:	8526    	STA $26        ; Next: Choice 2
C3/BE66:	60      	RTS

Fork: Handle Start
C3/BE67:	A509    	LDA $09        ; No-autofire keys
C3/BE69:	8910    	BIT #$10       ; Pushing Start?
C3/BE6B:	F00C    	BEQ $BE79      ; Exit if not
C3/BE6D:	201D0F  	JSR $0F1D      ; Sound: Click
C3/BE70:	9C0502  	STZ $0205      ; Never read...
C3/BE73:	A9FF    	LDA #$FF       ; Null value
C3/BE75:	8527    	STA $27        ; Queue menu exit
C3/BE77:	6426    	STZ $26        ; Next: Fade-out
C3/BE79:	60      	RTS

41: Handle SwdTech naming choice 2
C3/BE7A:	2033C0  	JSR $C033      ; Set to upload name
C3/BE7D:	A50B    	LDA $0B        ; Semi-auto keys
C3/BE7F:	8904    	BIT #$04       ; Pushing down?
C3/BE81:	F00E    	BEQ $BE91      ; Branch if not
C3/BE83:	A54E    	LDA $4E        ; Cursor row
C3/BE85:	C907    	CMP #$07       ; On bottom row?
C3/BE87:	D008    	BNE $BE91      ; Branch if not
C3/BE89:	A94E    	LDA #$4E       ; C3/BEEF
C3/BE8B:	8526    	STA $26        ; Next: Scroll
C3/BE8D:	A911    	LDA #$11       ; Frames: 17
C3/BE8F:	8520    	STA $20        ; Set scroll timer

Fork: Handle upward scrolling
C3/BE91:	A50B    	LDA $0B        ; Semi-auto keys
C3/BE93:	8908    	BIT #$08       ; Pushing up?
C3/BE95:	F00C    	BEQ $BEA3      ; Branch if not
C3/BE97:	A54E    	LDA $4E        ; On top row?
C3/BE99:	D008    	BNE $BEA3      ; Skip if not
C3/BE9B:	A94F    	LDA #$4F       ; C3/BF17
C3/BE9D:	8526    	STA $26        ; Next: Scroll
C3/BE9F:	A911    	LDA #$11       ; Frames: 17
C3/BEA1:	8520    	STA $20        ; Set scroll timer

Fork: Handle L and R, plus intrapage navigation
C3/BEA3:	2053BF  	JSR $BF53      ; Handle L and R
C3/BEA6:	20A5C0  	JSR $C0A5      ; Handle D-Pad

Fork: Handle Start
C3/BEA9:	A509    	LDA $09        ; No-autofire keys
C3/BEAB:	8910    	BIT #$10       ; Pushing Start?
C3/BEAD:	F002    	BEQ $BEB1      ; Branch if not
C3/BEAF:	80BC    	BRA $BE6D      ; Leave submenu

Fork: Handle A
C3/BEB1:	A508    	LDA $08        ; No-autofire keys
C3/BEB3:	8980    	BIT #$80       ; Pushing A?
C3/BEB5:	F014    	BEQ $BECB      ; Branch if not
C3/BEB7:	201D0F  	JSR $0F1D      ; Sound: Click
C3/BEBA:	203FBF  	JSR $BF3F      ; Replace letter
C3/BEBD:	A55E    	LDA $5E        ; Altered letter
C3/BEBF:	C905    	CMP #$05       ; Rightmost?
C3/BEC1:	F003    	BEQ $BEC6      ; Wrap if so
C3/BEC3:	1A      	INC A          ; Point to next
C3/BEC4:	8001    	BRA $BEC7      ; Skip a line
C3/BEC6:	7B      	TDC            ; Point to char 1
C3/BEC7:	855E    	STA $5E        ; Set return pos
C3/BEC9:	8009    	BRA $BED4      ; Next: Choice 1

Fork: Handle B
C3/BECB:	A509    	LDA $09        ; No-autofire keys
C3/BECD:	8980    	BIT #$80       ; Pushing B?
C3/BECF:	F01D    	BEQ $BEEE      ; Exit if not
C3/BED1:	20140F  	JSR $0F14      ; Sound: Cursor

Fork: Return to top of menu
C3/BED4:	A54D    	LDA $4D        ; Cursor column
C3/BED6:	855D    	STA $5D        ; Set for return
C3/BED8:	A54E    	LDA $4E        ; Cursor row
C3/BEDA:	855F    	STA $5F        ; Set for return
C3/BEDC:	207FC0  	JSR $C07F      ; Load navig data
C3/BEDF:	A55E    	LDA $5E        ; Former position
C3/BEE1:	854D    	STA $4D        ; Set cursor column
C3/BEE3:	2088C0  	JSR $C088      ; Relocate cursor
C3/BEE6:	A901    	LDA #$01       ; Mini arrow: Off
C3/BEE8:	1446    	TRB $46        ; Set menu flag
C3/BEEA:	A940    	LDA #$40       ; C3/BE37
C3/BEEC:	8526    	STA $26        ; Next: Choice 1
C3/BEEE:	60      	RTS

4E: Scroll to SwdTech naming page 2 if valid starting point
C3/BEEF:	A520    	LDA $20        ; Timer expired?
C3/BEF1:	F019    	BEQ $BF0C      ; Finalize if so
C3/BEF3:	A54A    	LDA $4A        ; Bottom of P2?
C3/BEF5:	D01B    	BNE $BF12      ; Cancel if so
C3/BEF7:	C220    	REP #$20       ; 16-bit A
C3/BEF9:	AFCD9B7E	LDA $7E9BCD    ; BG3 V-Shift
C3/BEFD:	18      	CLC            ; Prepare ADC
C3/BEFE:	690800  	ADC #$0008     ; Go 8 px down
C3/BF01:	8FCD9B7E	STA $7E9BCD    ; For upper chars
C3/BF05:	8FD09B7E	STA $7E9BD0    ; For lower chars
C3/BF09:	E220    	SEP #$20       ; 8-bit A
C3/BF0B:	60      	RTS

Fork: Resume control
C3/BF0C:	A938    	LDA #$38       ; Chars per page
C3/BF0E:	854A    	STA $4A        ; Set page mod
C3/BF10:	644E    	STZ $4E        ; Cursor row: 1
C3/BF12:	A941    	LDA #$41       ; C3/BE37
C3/BF14:	8526    	STA $26        ; Next: Choice 1
C3/BF16:	60      	RTS

4F: Scroll to SwdTech naming page 1 if valid starting point
C3/BF17:	A520    	LDA $20        ; Timer expired?
C3/BF19:	F019    	BEQ $BF34      ; Finalize if so
C3/BF1B:	A54A    	LDA $4A        ; Top of page 1?
C3/BF1D:	F01B    	BEQ $BF3A      ; Cancel if so
C3/BF1F:	C220    	REP #$20       ; 16-bit A
C3/BF21:	AFCD9B7E	LDA $7E9BCD    ; BG3 V-Shift
C3/BF25:	38      	SEC            ; Prepare SBC
C3/BF26:	E90800  	SBC #$0008     ; Go 8 px up
C3/BF29:	8FCD9B7E	STA $7E9BCD    ; For upper chars
C3/BF2D:	8FD09B7E	STA $7E9BD0    ; For lower chars
C3/BF31:	E220    	SEP #$20       ; 8-bit A
C3/BF33:	60      	RTS

Fork: Restore control
C3/BF34:	644A    	STZ $4A        ; Char tbl index
C3/BF36:	A907    	LDA #$07       ; Row: 8th
C3/BF38:	854E    	STA $4E        ; Set cursor's
C3/BF3A:	A941    	LDA #$41       ; C3/BE37
C3/BF3C:	8526    	STA $26        ; Next: Choice 1
C3/BF3E:	60      	RTS

Replace character in SwdTech name
C3/BF3F:	206EC0  	JSR $C06E      ; Name data index
C3/BF42:	8A      	TXA            ; ...
C3/BF43:	18      	CLC            ; Prepare ADC
C3/BF44:	6528    	ADC $28        ; Get altered slot
C3/BF46:	AA      	TAX            ; Index it
C3/BF47:	A54B    	LDA $4B        ; Cursor slot
C3/BF49:	18      	CLC            ; ...
C3/BF4A:	6980    	ADC #$80       ; Add base char
C3/BF4C:	18      	CLC            ; ...
C3/BF4D:	654A    	ADC $4A        ; +56 if page 2
C3/BF4F:	9DF81C  	STA $1CF8,X    ; Replace char
C3/BF52:	60      	RTS

Handle L and R in SwdTech naming menu
C3/BF53:	A508    	LDA $08        ; No-autofire keys
C3/BF55:	8910    	BIT #$10       ; Pushing R?
C3/BF57:	D004    	BNE $BF5D      ; Branch if so
C3/BF59:	8920    	BIT #$20       ; Pushing L?
C3/BF5B:	F01A    	BEQ $BF77      ; Exit if not
C3/BF5D:	200E0F  	JSR $0F0E      ; Sound: Cursor
C3/BF60:	A54A    	LDA $4A        ; On page 2?
C3/BF62:	D014    	BNE $BF78      ; Branch if so

Fork: Switch to page 2
C3/BF64:	A938    	LDA #$38       ; Chars per page
C3/BF66:	854A    	STA $4A        ; Set tbl index
C3/BF68:	C220    	REP #$20       ; 16-bit A
C3/BF6A:	A93000  	LDA #$0030     ; BG3 V-Shift: 48
C3/BF6D:	8FCD9B7E	STA $7E9BCD    ; For upper chars
C3/BF71:	8FD09B7E	STA $7E9BD0    ; For lower chars
C3/BF75:	E220    	SEP #$20       ; 8-bit A
C3/BF77:	60      	RTS

Fork: Switch to page 1
C3/BF78:	644A    	STZ $4A        ; Char tbl index
C3/BF7A:	C220    	REP #$20       ; 16-bit A
C3/BF7C:	A9B0FF  	LDA #$FFB0     ; BG3 V-Shift: -80
C3/BF7F:	8FCD9B7E	STA $7E9BCD    ; For upper chars
C3/BF83:	8FD09B7E	STA $7E9BD0    ; For lower chars
C3/BF87:	E220    	SEP #$20       ; 8-bit A
C3/BF89:	60      	RTS

Build description tilemap for SwdTech naming menu
C3/BF8A:	A24980  	LDX #$8049     ; Base: 7E/8049
C3/BF8D:	86EB    	STX $EB        ; Set map ptr LBs
C3/BF8F:	A97E    	LDA #$7E       ; Bank: 7E
C3/BF91:	85ED    	STA $ED        ; Set ptr HB
C3/BF93:	A0B001  	LDY #$01B0     ; Ends at 24, 7
C3/BF96:	84E7    	STY $E7        ; Set row's limit
C3/BF98:	A08601  	LDY #$0186     ; Starts at 4, 7
C3/BF9B:	A28036  	LDX #$3680     ; Tile 640, pal 5
C3/BF9E:	86E0    	STX $E0        ; Priority enabled
C3/BFA0:	20C6B0  	JSR $B0C6      ; Build row 1
C3/BFA3:	A0F001  	LDY #$01F0     ; Ends at 24, 8
C3/BFA6:	84E7    	STY $E7        ; Set row's limit
C3/BFA8:	A0C601  	LDY #$01C6     ; Starts at 4, 8
C3/BFAB:	A28136  	LDX #$3681     ; Tile 641, pal 5
C3/BFAE:	86E0    	STX $E0        ; Priority enabled
C3/BFB0:	4CC6B0  	JMP $B0C6      ; Build row 2

Load and upload VWF description graphics for renamed SwdTech
C3/BFB3:	A08002  	LDY #$0280     ; Bytes: 640
C3/BFB6:	84F3    	STY $F3        ; Set buffer size
C3/BFB8:	20CDC2  	JSR $C2CD      ; Clear GFX buffer
C3/BFBB:	A2AEFF  	LDX #$FFAE     ; CF/FFAE
C3/BFBE:	86E7    	STX $E7        ; Set ptr loc LBs
C3/BFC0:	A200FD  	LDX #$FD00     ; CF/FD00
C3/BFC3:	86EB    	STX $EB        ; Set text loc LBs
C3/BFC5:	A9CF    	LDA #$CF       ; Bank: CF
C3/BFC7:	85E9    	STA $E9        ; Set ptr loc HB
C3/BFC9:	A9CF    	LDA #$CF       ; ...
C3/BFCB:	85ED    	STA $ED        ; Set text loc HB
C3/BFCD:	A2C99E  	LDX #$9EC9     ; 7E/9EC9
C3/BFD0:	8E8121  	STX $2181      ; Set WRAM LBs
C3/BFD3:	7B      	TDC            ; Clear A
C3/BFD4:	AD0102  	LDA $0201      ; SwdTech
C3/BFD7:	20995D  	JSR $5D99      ; Load description
C3/BFDA:	648D    	STZ $8D        ; String width: 0
C3/BFDC:	64ED    	STZ $ED        ; VRAM index LB: 0
C3/BFDE:	64EE    	STZ $EE        ; VRAM index HB: 0
C3/BFE0:	A600    	LDX $00        ; Char index: 0
C3/BFE2:	BFC99E7E	LDA $7E9EC9,X  ; Name character
C3/BFE6:	F00B    	BEQ $BFF3      ; If terminator
C3/BFE8:	20ECB1  	JSR $B1EC      ; Decode char
C3/BFEB:	DA      	PHX            ; Save index
C3/BFEC:	2027B2  	JSR $B227      ; Load graphics
C3/BFEF:	FA      	PLX            ; Char index
C3/BFF0:	E8      	INX            ; Char index +1
C3/BFF1:	80EF    	BRA $BFE2      ; Do next char

Fork: Upload description graphics
C3/BFF3:	A00074  	LDY #$7400     ; $7400
C3/BFF6:	841B    	STY $1B        ; Set VRAM ptr
C3/BFF8:	A071A2  	LDY #$A271     ; 7E/A271
C3/BFFB:	841D    	STY $1D        ; Set src LBs
C3/BFFD:	A00007  	LDY #$0700     ; Bytes: 1792
C3/C000:	8419    	STY $19        ; Set data size
C3/C002:	201715  	JSR $1517      ; Upload graphics
C3/C005:	641B    	STZ $1B        ; Null VRAM ptr LB
C3/C007:	641C    	STZ $1C        ; Null VRAM ptr HB
C3/C009:	60      	RTS

Build tilemap for name of renamed SwdTech
C3/C00A:	A24980  	LDX #$8049     ; Base: 7E/8049
C3/C00D:	86EB    	STX $EB        ; Set map ptr LBs
C3/C00F:	A97E    	LDA #$7E       ; Bank: 7E
C3/C011:	85ED    	STA $ED        ; Set ptr HB
C3/C013:	A0B000  	LDY #$00B0     ; Ends at 24, 3
C3/C016:	84E7    	STY $E7        ; Set row's limit
C3/C018:	A09E00  	LDY #$009E     ; Starts at 16, 3
C3/C01B:	A20036  	LDX #$3600     ; Tile 512, pal 5
C3/C01E:	86E0    	STX $E0        ; Priority enabled
C3/C020:	20C6B0  	JSR $B0C6      ; Build row 1
C3/C023:	A0F000  	LDY #$00F0     ; Ends at 24, 4
C3/C026:	84E7    	STY $E7        ; Set row's limit
C3/C028:	A0DE00  	LDY #$00DE     ; Starts at 16, 4
C3/C02B:	A20136  	LDX #$3601     ; Tile 513, pal 5
C3/C02E:	86E0    	STX $E0        ; Priority enabled
C3/C030:	4CC6B0  	JMP $B0C6      ; Build row 2

Load and set to upload VWF string graphics for renamed SwdTech
C3/C033:	A02001  	LDY #$0120     ; Bytes: 288
C3/C036:	84F3    	STY $F3        ; Set buffer size
C3/C038:	20CDC2  	JSR $C2CD      ; Clear GFX buffer
C3/C03B:	648D    	STZ $8D        ; String width: 0
C3/C03D:	64ED    	STZ $ED        ; VRAM index LB: 0
C3/C03F:	64EE    	STZ $EE        ; VRAM index HB: 0
C3/C041:	A906    	LDA #$06       ; Letters: 6
C3/C043:	85F1    	STA $F1        ; Set counter
C3/C045:	206EC0  	JSR $C06E      ; Define X
C3/C048:	BDF81C  	LDA $1CF8,X    ; Name letter
C3/C04B:	A0403F  	LDY #$3F40     ; Base: C4/D400
C3/C04E:	84EB    	STY $EB        ; Set font index
C3/C050:	DA      	PHX            ; Save char index
C3/C051:	2027B2  	JSR $B227      ; Load graphics
C3/C054:	FA      	PLX            ; Char index
C3/C055:	E8      	INX            ; Char index +1
C3/C056:	C6F1    	DEC $F1        ; One less char
C3/C058:	D0EE    	BNE $C048      ; Loop till last
C3/C05A:	A00070  	LDY #$7000     ; $7000
C3/C05D:	841B    	STY $1B        ; Set VRAM ptr
C3/C05F:	A071A2  	LDY #$A271     ; 7E/A271
C3/C062:	841D    	STY $1D        ; Set src LBs
C3/C064:	A02001  	LDY #$0120     ; Bytes: 288
C3/C067:	8419    	STY $19        ; Set data size
C3/C069:	A901    	LDA #$01       ; CGRAM: Freeze
C3/C06B:	1445    	TRB $45        ; Set NMI flag
C3/C06D:	60      	RTS

Compute SwdTech name data index
C3/C06E:	7B      	TDC            ; Clear A
C3/C06F:	AD0102  	LDA $0201      ; SwdTech
C3/C072:	0A      	ASL A          ; x2
C3/C073:	0A      	ASL A          ; x4
C3/C074:	85E0    	STA $E0        ; Memorize it
C3/C076:	AD0102  	LDA $0201      ; SwdTech
C3/C079:	0A      	ASL A          ; x2
C3/C07A:	18      	CLC            ; ...
C3/C07B:	65E0    	ADC $E0        ; x6 letters
C3/C07D:	AA      	TAX            ; Index it
C3/C07E:	60      	RTS

Load navigation data for name area in SwdTech naming menu
C3/C07F:	A08EC0  	LDY #$C08E     ; C3/C08E
C3/C082:	4C8106  	JMP $0681      ; Load navig data

Handle D-Pad for name area in SwdTech naming menu
C3/C085:	20B007  	JSR $07B0      ; Handle D-Pad
C3/C088:	A093C0  	LDY #$C093     ; C3/C093
C3/C08B:	4CC306  	JMP $06C3      ; Relocate cursor

Navigation data for name area in SwdTech naming menu
C3/C08E:	01      	; Wraps horizontally
C3/C08F:	00      	; Initial column
C3/C090:	00      	; Initial row
C3/C091:	06      	; 6 columns
C3/C092:	01      	; 1 row

Cursor positions for name in SwdTech naming menu
C3/C093:	701C    	; Letter 1
C3/C095:	7C1C    	; Letter 2
C3/C097:	881C    	; Letter 3
C3/C099:	941C    	; Letter 4
C3/C09B:	A01C    	; Letter 5
C3/C09D:	AC1C    	; Letter 6

Load navigation data for SwdTech naming menu options
C3/C09F:	A0AEC0  	LDY #$C0AE     ; C3/C0AE
C3/C0A2:	4C8106  	JMP $0681      ; Load navig data

Handle D-Pad for SwdTech naming menu options
C3/C0A5:	20B007  	JSR $07B0      ; Handle D-Pad
C3/C0A8:	A0B3C0  	LDY #$C0B3     ; C3/C0B3
C3/C0AB:	4CC306  	JMP $06C3      ; Relocate cursor

Navigation data for SwdTech naming menu options
C3/C0AE:	01      	; Wraps horizontally
C3/C0AF:	00      	; Initial column
C3/C0B0:	00      	; Initial row
C3/C0B1:	07      	; 7 columns
C3/C0B2:	08      	; 8 rows

Cursor positions for SwdTech naming menu options
C3/C0B3:	1050    	; Row 1, column 1
C3/C0B5:	3050    	; Row 1, column 2
C3/C0B7:	5050    	; Row 1, column 3
C3/C0B9:	7050    	; Row 1, column 4
C3/C0BB:	9050    	; Row 1, column 5
C3/C0BD:	B050    	; Row 1, column 6
C3/C0BF:	D050    	; Row 1, column 7
C3/C0C1:	1060    	; Row 2, column 1
C3/C0C3:	3060    	; Row 2, column 2
C3/C0C5:	5060    	; Row 2, column 3
C3/C0C7:	7060    	; Row 2, column 4
C3/C0C9:	9060    	; Row 2, column 5
C3/C0CB:	B060    	; Row 2, column 6
C3/C0CD:	D060    	; Row 2, column 7
C3/C0CF:	1070    	; Row 3, column 1
C3/C0D1:	3070    	; Row 3, column 2
C3/C0D3:	5070    	; Row 3, column 3
C3/C0D5:	7070    	; Row 3, column 4
C3/C0D7:	9070    	; Row 3, column 5
C3/C0D9:	B070    	; Row 3, column 6
C3/C0DB:	D070    	; Row 3, column 7
C3/C0DD:	1080    	; Row 4, column 1
C3/C0DF:	3080    	; Row 4, column 2
C3/C0E1:	5080    	; Row 4, column 3
C3/C0E3:	7080    	; Row 4, column 4
C3/C0E5:	9080    	; Row 4, column 5
C3/C0E7:	B080    	; Row 4, column 6
C3/C0E9:	D080    	; Row 4, column 7
C3/C0EB:	1090    	; Row 5, column 1
C3/C0ED:	3090    	; Row 5, column 2
C3/C0EF:	5090    	; Row 5, column 3
C3/C0F1:	7090    	; Row 5, column 4
C3/C0F3:	9090    	; Row 5, column 5
C3/C0F5:	B090    	; Row 5, column 6
C3/C0F7:	D090    	; Row 5, column 7
C3/C0F9:	10A0    	; Row 6, column 1
C3/C0FB:	30A0    	; Row 6, column 2
C3/C0FD:	50A0    	; Row 6, column 3
C3/C0FF:	70A0    	; Row 6, column 4
C3/C101:	90A0    	; Row 6, column 5
C3/C103:	B0A0    	; Row 6, column 6
C3/C105:	D0A0    	; Row 6, column 7
C3/C107:	10B0    	; Row 7, column 1
C3/C109:	30B0    	; Row 7, column 2
C3/C10B:	50B0    	; Row 7, column 3
C3/C10D:	70B0    	; Row 7, column 4
C3/C10F:	90B0    	; Row 7, column 5
C3/C111:	B0B0    	; Row 7, column 6
C3/C113:	D0B0    	; Row 7, column 7
C3/C115:	10C0    	; Row 8, column 1
C3/C117:	30C0    	; Row 8, column 2
C3/C119:	50C0    	; Row 8, column 3
C3/C11B:	70C0    	; Row 8, column 4
C3/C11D:	90C0    	; Row 8, column 5
C3/C11F:	B0C0    	; Row 8, column 6
C3/C121:	D0C0    	; Row 8, column 7

Draw SwdTech naming menu, upload kanji graphics
C3/C123:	A038C2  	LDY #$C238     ; C3/C238
C3/C126:	20C403  	JSR $03C4      ; Draw top box
C3/C129:	A03CC2  	LDY #$C23C     ; C3/C23C
C3/C12C:	20C403  	JSR $03C4      ; Draw middle box
C3/C12F:	A040C2  	LDY #$C240     ; C3/C240
C3/C132:	20C403  	JSR $03C4      ; Draw bottom box
C3/C135:	20BD0E  	JSR $0EBD      ; Upload windows
C3/C138:	20A971  	JSR $71A9      ; Clear BG1 map A
C3/C13B:	20AD71  	JSR $71AD      ; Clear BG1 map B
C3/C13E:	20F2C1  	JSR $C1F2      ; Draw gauge
C3/C141:	20CAC1  	JSR $C1CA      ; Draw tech number
C3/C144:	20930E  	JSR $0E93      ; Upload BG1 A+B

Fork: Build tilemap for character set
C3/C147:	20D071  	JSR $71D0      ; Clear BG3 map A
C3/C14A:	20D571  	JSR $71D5      ; Clear BG3 map B
C3/C14D:	A920    	LDA #$20       ; Palette 0
C3/C14F:	8529    	STA $29        ; Color: User's
C3/C151:	A24978  	LDX #$7849     ; Base: 7E/7849
C3/C154:	86EB    	STX $EB        ; Set map ptr LBs
C3/C156:	A97E    	LDA #$7E       ; Bank: 7E
C3/C158:	85ED    	STA $ED        ; Set ptr HB
C3/C15A:	A600    	LDX $00        ; ROM index: 0
C3/C15C:	C220    	REP #$20       ; 16-bit A
C3/C15E:	BF8AC1C3	LDA $C3C18A,X  ; Tilemap index
C3/C162:	A8      	TAY            ; Index it
C3/C163:	E8      	INX            ; ROM index +1
C3/C164:	E8      	INX            ; ROM index +1
C3/C165:	BF8AC1C3	LDA $C3C18A,X  ; Base attribs
C3/C169:	E8      	INX            ; ROM index +1
C3/C16A:	E8      	INX            ; ROM index +1
C3/C16B:	DA      	PHX            ; Memorize it
C3/C16C:	AA      	TAX            ; X = Attribs
C3/C16D:	205AC2  	JSR $C25A      ; Draw 7 chars
C3/C170:	FA      	PLX            ; ROM index
C3/C171:	E04000  	CPX #$0040     ; Done 8x2 rows?
C3/C174:	D0E6    	BNE $C15C      ; Loop if not

Fork: Upload graphics and tilemaps
C3/C176:	E220    	SEP #$20       ; 8-bit A
C3/C178:	20A5C2  	JSR $C2A5      ; Load charset GFX
C3/C17B:	208ABF  	JSR $BF8A      ; Build desc map
C3/C17E:	20B3BF  	JSR $BFB3      ; Upload desc GFX
C3/C181:	200AC0  	JSR $C00A      ; Build name map
C3/C184:	2033C0  	JSR $C033      ; Queue name GFX DMA
C3/C187:	4CD90E  	JMP $0ED9      ; Upload BG3 A+B

Base position and attributes for charset in SwdTech naming menu
C3/C18A:	0800 0034	; Page 1, row 1
C3/C18E:	8800 1C34	; Page 1, row 2
C3/C192:	0801 3834	; Page 1, row 3
C3/C196:	8801 5434	; Page 1, row 4
C3/C19A:	0802 7034	; Page 1, row 5
C3/C19E:	8802 8C34	; Page 1, row 6
C3/C1A2:	0803 A834	; Page 1, row 7
C3/C1A6:	8803 C434	; Page 1, row 8
C3/C1AA:	0804 E034	; Page 2, row 1
C3/C1AE:	8804 FC34	; Page 2, row 2
C3/C1B2:	0805 1835	; Page 2, row 3
C3/C1B6:	8805 3435	; Page 2, row 4
C3/C1BA:	0806 5035	; Page 2, row 5
C3/C1BE:	8806 6C35	; Page 2, row 6
C3/C1C2:	0807 8835	; Page 2, row 7
C3/C1C6:	8807 A435	; Page 2, row 8

Draw "SwdTech <#>" in SwdTech naming menu
C3/C1CA:	A920    	LDA #$20       ; Palette 0
C3/C1CC:	8529    	STA $29        ; Color: User's
C3/C1CE:	A051C2  	LDY #$C251     ; Text pointer
C3/C1D1:	202603  	JSR $0326      ; Draw "SwdTech"
C3/C1D4:	7B      	TDC            ; Clear A
C3/C1D5:	AD0102  	LDA $0201      ; SwdTech
C3/C1D8:	1A      	INC A          ; Now 1-8
C3/C1D9:	18      	CLC            ; Prepare ADC
C3/C1DA:	6953    	ADC #$53       ; Turn into text
C3/C1DC:	85F9    	STA $F9        ; Add to string
C3/C1DE:	64FA    	STZ $FA        ; End string
C3/C1E0:	A2DD38  	LDX #$38DD     ; Tilemap ptr
C3/C1E3:	86F7    	STX $F7        ; Set position
C3/C1E5:	A0F700  	LDY #$00F7     ; 00/00F7
C3/C1E8:	84E7    	STY $E7        ; Set src LBs
C3/C1EA:	A900    	LDA #$00       ; Bank: 00
C3/C1EC:	85E9    	STA $E9        ; Set src HB
C3/C1EE:	20FF02  	JSR $02FF      ; Draw value
C3/C1F1:	60      	RTS

Draw gauge in SwdTech naming menu
C3/C1F2:	A930    	LDA #$30       ; Palette 4
C3/C1F4:	8529    	STA $29        ; Color: Gray
C3/C1F6:	A044C2  	LDY #$C244     ; Text pointer
C3/C1F9:	20F902  	JSR $02F9      ; Draw gauge
C3/C1FC:	7B      	TDC            ; Clear A
C3/C1FD:	AD0102  	LDA $0201      ; SwdTech
C3/C200:	F02E    	BEQ $C230      ; If Dispatch
C3/C202:	A8      	TAY            ; Set counter
C3/C203:	C220    	REP #$20       ; 16-bit A
C3/C205:	A91139  	LDA #$3911     ; Tilemap ptr
C3/C208:	8F899E7E	STA $7E9E89    ; Set position
C3/C20C:	E220    	SEP #$20       ; 8-bit A
C3/C20E:	A28B9E  	LDX #$9E8B     ; 7E/9E8B
C3/C211:	8E8121  	STX $2181      ; Set WRAM LBs
C3/C214:	A600    	LDX $00        ; Index: 0
C3/C216:	BF31C2C3	LDA $C3C231,X  ; Filler tile
C3/C21A:	8D8021  	STA $2180      ; Add to string
C3/C21D:	E8      	INX            ; Index +1
C3/C21E:	88      	DEY            ; One less left
C3/C21F:	D0F5    	BNE $C216      ; Loop till last
C3/C221:	9C8021  	STZ $2180      ; End string
C3/C224:	A0899E  	LDY #$9E89     ; 7E/9E89
C3/C227:	84E7    	STY $E7        ; Set src LBs
C3/C229:	A97E    	LDA #$7E       ; Bank: 7E
C3/C22B:	85E9    	STA $E9        ; Set src HB
C3/C22D:	20FF02  	JSR $02FF      ; Draw filling
C3/C230:	60      	RTS

Tile numbers for filling SwdTech gauge
C3/C231:	18      	; Retort
C3/C232:	18      	; Slash
C3/C233:	18      	; Quadra Slam
C3/C234:	18      	; Empowerer
C3/C235:	18      	; Stunner
C3/C236:	18      	; Quadra Slice
C3/C237:	18      	; Cleave

Window layout for SwdTech naming menu
C3/C238:	8B581C02	; 30x04 at $588B (Top)
C3/C23C:	8B591C02	; 30x04 at $598B (Middle)
C3/C240:	8B5A1C10	; 30x18 at $5A8B (Bottom)

Positioned text for SwdTech naming menu
C3/C244:	0D39 1918101010101010101A00    ; Base gauge
C3/C251:	8F38 63BD758371B900            ; SwdTech

Build tilemap for current row of kanji in SwdTech naming menu
C3/C25A:	E220    	SEP #$20       ; 8-bit A
C3/C25C:	A907    	LDA #$07       ; Characters: 7
C3/C25E:	85E2    	STA $E2        ; Set counter
C3/C260:	C220    	REP #$20       ; 16-bit A
C3/C262:	5A      	PHY            ; Save map index
C3/C263:	DA      	PHX            ; Save attributes
C3/C264:	207CC2  	JSR $C27C      ; Draw character
C3/C267:	FA      	PLX            ; Tile attributes
C3/C268:	8A      	TXA            ; Put them in A
C3/C269:	18      	CLC            ; Prepare ADC
C3/C26A:	690400  	ADC #$0004     ; Base tile num +4
C3/C26D:	AA      	TAX            ; Put this in X
C3/C26E:	7A      	PLY            ; Tilemap index
C3/C26F:	98      	TYA            ; Put it in A
C3/C270:	18      	CLC            ; Prepare ADC
C3/C271:	690800  	ADC #$0008     ; Go 4 tiles right
C3/C274:	A8      	TAY            ; Reindex it
C3/C275:	E220    	SEP #$20       ; 8-bit A
C3/C277:	C6E2    	DEC $E2        ; One less char
C3/C279:	D0E5    	BNE $C260      ; Loop till last
C3/C27B:	60      	RTS

Build tilemap for current kanji from charset in SwdTech naming menu
C3/C27C:	86E0    	STX $E0        ; Save attributes
C3/C27E:	A5E0    	LDA $E0        ; Put them in A
C3/C280:	97EB    	STA [$EB],Y    ; Set NW tile's
C3/C282:	E6E0    	INC $E0        ; Tile number +1
C3/C284:	E6E0    	INC $E0        ; Tile number +1
C3/C286:	C8      	INY            ; Map index +1
C3/C287:	C8      	INY            ; Map index +1
C3/C288:	A5E0    	LDA $E0        ; Tile attributes
C3/C28A:	97EB    	STA [$EB],Y    ; Set NE tile's
C3/C28C:	C6E0    	DEC $E0        ; Tile number -1
C3/C28E:	88      	DEY            ; Map index -1
C3/C28F:	88      	DEY            ; Map index -1
C3/C290:	98      	TYA            ; Put it in A
C3/C291:	18      	CLC            ; Prepare ADC
C3/C292:	694000  	ADC #$0040     ; Go 1 row down
C3/C295:	A8      	TAY            ; Reindex it
C3/C296:	A5E0    	LDA $E0        ; Tile attributes
C3/C298:	97EB    	STA [$EB],Y    ; Set SW tile's
C3/C29A:	C8      	INY            ; Map index +1
C3/C29B:	C8      	INY            ; Map index +1
C3/C29C:	E6E0    	INC $E0        ; Tile number +1
C3/C29E:	E6E0    	INC $E0        ; Tile number +1
C3/C2A0:	A5E0    	LDA $E0        ; Tile attributes
C3/C2A2:	97EB    	STA [$EB],Y    ; Set SE tile's
C3/C2A4:	60      	RTS

Load VWF graphics for charset in SwdTech naming menu
C3/C2A5:	64E4    	STZ $E4        ; Char slot: 1st
C3/C2A7:	A00060  	LDY #$6000     ; $6000
C3/C2AA:	84F1    	STY $F1        ; Set VRAM ptr
C3/C2AC:	20DEC2  	JSR $C2DE      ; Load char GFX
C3/C2AF:	A4F1    	LDY $F1        ; VRAM pointer
C3/C2B1:	2053AF  	JSR $AF53      ; Upload graphics
C3/C2B4:	C220    	REP #$20       ; 16-bit A
C3/C2B6:	A5F1    	LDA $F1        ; VRAM pointer
C3/C2B8:	18      	CLC            ; Prepare ADC
C3/C2B9:	692000  	ADC #$0020     ; Skip 4 tiles
C3/C2BC:	85F1    	STA $F1        ; Save changes
C3/C2BE:	E220    	SEP #$20       ; 8-bit A
C3/C2C0:	E6E4    	INC $E4        ; Char slot +1
C3/C2C2:	A5E4    	LDA $E4        ; Char slot
C3/C2C4:	C970    	CMP #$70       ; Done all 112?
C3/C2C6:	D0E4    	BNE $C2AC      ; Loop if not
C3/C2C8:	641B    	STZ $1B        ; Null VRAM ptr LB
C3/C2CA:	641C    	STZ $1C        ; Null VRAM ptr HB
C3/C2CC:	60      	RTS

Clear buffer for storing element or SwdTech kanji graphics (4 tiles)
C3/C2CD:	7B      	TDC            ; Clear A
C3/C2CE:	AA      	TAX            ; Index: 0
C3/C2CF:	C220    	REP #$20       ; 16-bit A
C3/C2D1:	9F71A27E	STA $7EA271,X  ; Clear a word
C3/C2D5:	E8      	INX            ; Index +1
C3/C2D6:	E8      	INX            ; Index +1
C3/C2D7:	E4F3    	CPX $F3        ; Past range?
C3/C2D9:	D0F6    	BNE $C2D1      ; Loop if not
C3/C2DB:	E220    	SEP #$20       ; 8-bit A
C3/C2DD:	60      	RTS

Load VWF graphics for charset slot in SwdTech naming menu
C3/C2DE:	A04000  	LDY #$0040     ; Bytes: 64
C3/C2E1:	84F3    	STY $F3        ; Set buffer size
C3/C2E3:	20CDC2  	JSR $C2CD      ; Clear GFX buffer
C3/C2E6:	648D    	STZ $8D        ; String width: 0
C3/C2E8:	64ED    	STZ $ED        ; VRAM index LB: 0
C3/C2EA:	64EE    	STZ $EE        ; VRAM index HB: 0
C3/C2EC:	A5E4    	LDA $E4        ; Slot number
C3/C2EE:	18      	CLC            ; Prepare ADC
C3/C2EF:	6980    	ADC #$80       ; Now tile number
C3/C2F1:	A0403F  	LDY #$3F40     ; Base: C4/D400
C3/C2F4:	84EB    	STY $EB        ; Set font index
C3/C2F6:	4C27B2  	JMP $B227      ; Load graphics

Create small arrow in SwdTech naming menu
C3/C2F9:	A902    	LDA #$02       ; Min slot: 16
C3/C2FB:	A012C3  	LDY #$C312     ; C3/C312
C3/C2FE:	20DE11  	JSR $11DE      ; Queue OAM fn
C3/C301:	C220    	REP #$20       ; 16-bit A
C3/C303:	A555    	LDA $55        ; Cursor's X
C3/C305:	9FCA337E	STA $7E33CA,X  ; Set arrow's
C3/C309:	A557    	LDA $57        ; Cursor's Y
C3/C30B:	9F4A347E	STA $7E344A,X  ; Set arrow's
C3/C30F:	E220    	SEP #$20       ; 8-bit A
C3/C311:	60      	RTS

Update small arrow in SwdTech naming menu
C3/C312:	AA      	TAX            ; Index mode
C3/C313:	7C16C3  	JMP ($C316,X)  ; Handle mode

Jump table for the above
C3/C316:	1AC3    	; Initialize arrow
C3/C318:	35C3    	; Sustain arrow

Mode 0: Initialize arrow
C3/C31A:	A62D    	LDX $2D        ; Queue index
C3/C31C:	A901    	LDA #$01       ; Show arrow: Y
C3/C31E:	0446    	TSB $46        ; Set menu flag
C3/C320:	C220    	REP #$20       ; 16-bit A
C3/C322:	A94EC3  	LDA #$C34E     ; Anim table ptr
C3/C325:	9DC932  	STA $32C9,X    ; Set arrow's
C3/C328:	E220    	SEP #$20       ; 8-bit A
C3/C32A:	A9C3    	LDA #$C3       ; Bank: C3
C3/C32C:	9DCA35  	STA $35CA,X    ; Set ptr HB
C3/C32F:	207112  	JSR $1271      ; Set pose timer
C3/C332:	FE4936  	INC $3649,X    ; Mode +1

Mode 1: Sustain arrow
C3/C335:	A546    	LDA $46        ; Menu flags
C3/C337:	8901    	BIT #$01       ; Delete arrow?
C3/C339:	F007    	BEQ $C342      ; Dequeue if so
C3/C33B:	A62D    	LDX $2D        ; Queue index
C3/C33D:	208C12  	JSR $128C      ; Define OAM
C3/C340:	38      	SEC            ; Set to requeue
C3/C341:	60      	RTS            ; Exit
C3/C342:	18      	CLC            ; Set to dequeue
C3/C343:	60      	RTS

OAM for small white arrow in naming menus
C3/C344:	01      	; Tiles: 1
C3/C345:	0900    	; 8x8, X+9, Y+0
C3/C347:	023E    	; Tile 2, pal 7, prio 3

OAM for small black arrow in naming menus
C3/C349:	01      	; Tiles: 1
C3/C34A:	0900    	; 8x8, X+9, Y+0
C3/C34C:	123E    	; Tile 18, pal 7, prio 3

Animation table for small arrow in naming menus
C3/C34E:	44C3    	; White arrow
C3/C350:	02      	; Frames: 2
C3/C351:	49C3    	; Black arrow
C3/C353:	02      	; Frames: 2
C3/C354:	44C3    	; Bogus...
C3/C356:	FF      	; Loop

Update large arrow in SwdTech naming menu
C3/C357:	AA      	TAX            ; Index mode
C3/C358:	7C5BC3  	JMP ($C35B,X)  ; Handle mode

Jump table for the above
C3/C35B:	5FC3    	; Initialize arrow
C3/C35D:	82C3    	; Sustain arrow

Mode 0: Initialize arrow
C3/C35F:	A62D    	LDX $2D        ; Queue index
C3/C361:	C220    	REP #$20       ; 16-bit A
C3/C363:	A9A3C3  	LDA #$C3A3     ; Anim table ptr
C3/C366:	9DC932  	STA $32C9,X    ; Set arrow's
C3/C369:	A97800  	LDA #$0078     ; X: 120
C3/C36C:	9DCA33  	STA $33CA,X    ; Set arrow's
C3/C36F:	A94800  	LDA #$0048     ; Base Y: 72
C3/C372:	9D4A34  	STA $344A,X    ; Set arrow's
C3/C375:	E220    	SEP #$20       ; 8-bit A
C3/C377:	A9C3    	LDA #$C3       ; Bank: C3
C3/C379:	9DCA35  	STA $35CA,X    ; Set ptr HB
C3/C37C:	FE4936  	INC $3649,X    ; Mode +1
C3/C37F:	207112  	JSR $1271      ; Set pose timer

Mode 1: Sustain arrow
C3/C382:	A62D    	LDX $2D        ; Queue index
C3/C384:	A54A    	LDA $4A        ; On first page?
C3/C386:	F004    	BEQ $C38C      ; Branch if so
C3/C388:	A902    	LDA #$02       ; Arrow: Up
C3/C38A:	8001    	BRA $C38D      ; Skip a line
C3/C38C:	7B      	TDC            ; Arrow: Down
C3/C38D:	9B      	TXY            ; Queue index
C3/C38E:	AA      	TAX            ; Pointer index
C3/C38F:	C220    	REP #$20       ; 16-bit A
C3/C391:	BF9FC3C3	LDA $C3C39F,X  ; Anim table ptr
C3/C395:	99C932  	STA $32C9,Y    ; Set arrow's
C3/C398:	E220    	SEP #$20       ; ...
C3/C39A:	208C12  	JSR $128C      ; Define OAM
C3/C39D:	38      	SEC            ; Set to requeue
C3/C39E:	60      	RTS

Pointers for SwdTech naming menu's large arrows
C3/C39F:	A3C3    	; Downward arrow
C3/C3A1:	ACC3    	; Upward arrow

Animation table for large downward arrow in SwdTech naming menu
C3/C3A3:	B5C3    	; Hide arrow
C3/C3A5:	10      	; Frames: 16
C3/C3A6:	B6C3    	; Show arrow
C3/C3A8:	10      	; Frames: 16
C3/C3A9:	B5C3    	; Bogus...
C3/C3AB:	FF      	; Loop

Animation table for large upward arrow in SwdTech naming menu
C3/C3AC:	B5C3    	; Hide arrow
C3/C3AE:	10      	; Frames: 16
C3/C3AF:	BBC3    	; Show arrow
C3/C3B0:	10      	; Frames: 16
C3/C3B2:	B5C3    	; Bogus...
C3/C3B4:	FF      	; Loop

OAM for blanking large page arrow
C3/C3B5:	00      	; Tiles: 0

OAM for large downward arrow in SwdTech naming menu
C3/C3B6:	01      	; Tiles: 1
C3/C3B7:	8082    	; 16x16, X+0, Y+130
C3/C3B9:	033E    	; Tile 3, pal 7, prio 3

OAM for large upward arrow
C3/C3BB:	01      	; Tiles: 1
C3/C3BC:	8000    	; 16x16, X+0, Y+0
C3/C3BE:	03BE    	; Tile 3, pal 7, prio 3, V-Flip

24: Initialize shop menu
C3/C3C0:	20F735  	JSR $35F7      ; Reset/Stop stuff
C3/C3C3:	207670  	JSR $7076      ; Reset BGs' X/Y
C3/C3C6:	A903    	LDA #$03       ; 64x64 at $0000
C3/C3C8:	8D0721  	STA $2107      ; Set BG1 map loc
C3/C3CB:	A9C0    	LDA #$C0       ; Channels: 6, 7
C3/C3CD:	1443    	TRB $43        ; Halt HDMA 6+7
C3/C3CF:	A902    	LDA #$02       ; Main cursor: On
C3/C3D1:	8546    	STA $46        ; Bar/Blinker: Off
C3/C3D3:	644A    	STZ $4A        ; Sell list scroll: 0
C3/C3D5:	20DDC7  	JSR $C7DD      ; Load navig data
C3/C3D8:	20E6C7  	JSR $C7E6      ; Relocate cursor
C3/C3DB:	203308  	JSR $0833      ; Queue cursor OAM
C3/C3DE:	201BC8  	JSR $C81B      ; Draw menu; desc
C3/C3E1:	20DA85  	JSR $85DA      ; Set to shift text
C3/C3E4:	2073CF  	JSR $CF73      ; Adjust BG3 shifting
C3/C3E7:	A925    	LDA #$25       ; C3/C3F2
C3/C3E9:	8527    	STA $27        ; Queue: Sustain menu
C3/C3EB:	A901    	LDA #$01       ; C3/1DE4
C3/C3ED:	8526    	STA $26        ; Next: Fade-in
C3/C3EF:	4C0936  	JMP $3609      ; BRT:1 + NMI

25: Sustain main shop menu
C3/C3F2:	20E3C7  	JSR $C7E3      ; Handle D-Pad
C3/C3F5:	A508    	LDA $08        ; No-autofire keys
C3/C3F7:	8980    	BIT #$80       ; Pushing A?
C3/C3F9:	F006    	BEQ $C401      ; Branch if not
C3/C3FB:	201D0F  	JSR $0F1D      ; Sound: Click
C3/C3FE:	4CE9C6  	JMP $C6E9      ; Handle choice

Fork: Handle B
C3/C401:	A509    	LDA $09        ; No-autofire keys
C3/C403:	8980    	BIT #$80       ; Pushing B?
C3/C405:	F00C    	BEQ $C413      ; Exit if not
C3/C407:	20140F  	JSR $0F14      ; Sound: Cursor
C3/C40A:	9C0502  	STZ $0205      ; Never read...
C3/C40D:	A9FF    	LDA #$FF       ; Null value
C3/C40F:	8527    	STA $27        ; Queue menu exit
C3/C411:	6426    	STZ $26        ; Next: Fade-out
C3/C413:	60      	RTS

26: Handle buy item list
C3/C414:	A910    	LDA #$10       ; Reset/Stop desc
C3/C416:	0445    	TSB $45        ; Set menu flag
C3/C418:	20A40F  	JSR $0FA4      ; Queue text upload
C3/C41B:	20FDC7  	JSR $C7FD      ; Handle D-Pad
C3/C41E:	20DFCB  	JSR $CBDF      ; Draw qty owned
C3/C421:	2003CC  	JSR $CC03      ; Draw qty worn

Fork: Handle B
C3/C424:	A509    	LDA $09        ; No-autofire keys
C3/C426:	8980    	BIT #$80       ; Pushing B?
C3/C428:	F006    	BEQ $C430      ; Branch if not
C3/C42A:	20140F  	JSR $0F14      ; Sound: Cursor
C3/C42D:	4CB7C6  	JMP $C6B7      ; Exit submenu

Fork: Handle A
C3/C430:	A508    	LDA $08        ; No-autofire keys
C3/C432:	8980    	BIT #$80       ; Pushing A?
C3/C434:	F006    	BEQ $C43C      ; Exit if not
C3/C436:	2086C7  	JSR $C786      ; Set buy limit
C3/C439:	203DC7  	JSR $C73D      ; Test GP, stock
C3/C43C:	60      	RTS

Set description to be displayed and to ignore joypad
C3/C43D:	A910    	LDA #$10       ; Description: On
C3/C43F:	1445    	TRB $45        ; Set menu flag
C3/C441:	A920    	LDA #$20       ; D-Pad: Ignore
C3/C443:	0445    	TSB $45        ; Set desc flag
C3/C445:	60      	RTS

Load item description for Buy menu
C3/C446:	20898A  	JSR $8A89      ; Set desc ptrs
C3/C449:	201DCF  	JSR $CF1D      ; Selected item
C3/C44C:	4C955D  	JMP $5D95      ; Load description

Load item description for Sell menu
C3/C44F:	20898A  	JSR $8A89      ; Set desc ptrs
C3/C452:	7B      	TDC            ; Clear A
C3/C453:	A54B    	LDA $4B        ; Selected slot
C3/C455:	AA      	TAX            ; Index it
C3/C456:	BD6918  	LDA $1869,X    ; Item in slot
C3/C459:	4C955D  	JMP $5D95      ; Load description

27: Handle buy order menu
C3/C45C:	203DC4  	JSR $C43D      ; Set desc flags
C3/C45F:	2046C4  	JSR $C446      ; Load description
C3/C462:	20AACA  	JSR $CAAA      ; Get order value
C3/C465:	2005CB  	JSR $CB05      ; Draw size, value

Fork: Buy quantity +1
C3/C468:	A50B    	LDA $0B        ; Semi-auto keys
C3/C46A:	8901    	BIT #$01       ; Pushing right?
C3/C46C:	F022    	BEQ $C490      ; Branch if not
C3/C46E:	200E0F  	JSR $0F0E      ; Sound: Cursor
C3/C471:	A528    	LDA $28        ; Buy quantity
C3/C473:	C56A    	CMP $6A        ; At capacity?
C3/C475:	F05C    	BEQ $C4D3      ; Abort if so
C3/C477:	E628    	INC $28        ; Quantity +1
C3/C479:	20AACA  	JSR $CAAA      ; Get new cost
C3/C47C:	AD6018  	LDA $1860      ; Gold LB
C3/C47F:	C5F1    	CMP $F1        ; C- if < cost's
C3/C481:	AD6118  	LDA $1861      ; Gold MB
C3/C484:	E5F2    	SBC $F2        ; C- if < cost's
C3/C486:	AD6218  	LDA $1862      ; Gold HB
C3/C489:	E5F3    	SBC $F3        ; So, GP < cost?
C3/C48B:	B002    	BCS $C48F      ; Exit if not
C3/C48D:	C628    	DEC $28        ; Quantity -1
C3/C48F:	60      	RTS

Fork: Buy quantity -1
C3/C490:	A50B    	LDA $0B        ; Semi-auto keys
C3/C492:	8902    	BIT #$02       ; Pushing left?
C3/C494:	F00B    	BEQ $C4A1      ; Branch if not
C3/C496:	200E0F  	JSR $0F0E      ; Sound: Cursor
C3/C499:	A528    	LDA $28        ; Buy quantity
C3/C49B:	C901    	CMP #$01       ; One?
C3/C49D:	F056    	BEQ $C4F5      ; Abort if so
C3/C49F:	C628    	DEC $28        ; Quantity -1

Fork: Buy quantity +10
C3/C4A1:	A50B    	LDA $0B        ; Semi-auto keys
C3/C4A3:	8908    	BIT #$08       ; Pushing up?
C3/C4A5:	F033    	BEQ $C4DA      ; Branch if not
C3/C4A7:	200E0F  	JSR $0F0E      ; Sound: Cursor
C3/C4AA:	A90A    	LDA #$0A       ; Quantity: 10
C3/C4AC:	18      	CLC            ; Prepare ADC
C3/C4AD:	6528    	ADC $28        ; Add order size
C3/C4AF:	C56A    	CMP $6A        ; At capacity?
C3/C4B1:	F002    	BEQ $C4B5      ; Retain if so
C3/C4B3:	B021    	BCS $C4D6      ; Abort if over
C3/C4B5:	8528    	STA $28        ; Set order size
C3/C4B7:	20AACA  	JSR $CAAA      ; Get new cost
C3/C4BA:	AD6018  	LDA $1860      ; Gold LB
C3/C4BD:	C5F1    	CMP $F1        ; C- if < cost's
C3/C4BF:	AD6118  	LDA $1861      ; Gold MB
C3/C4C2:	E5F2    	SBC $F2        ; C- if < cost's
C3/C4C4:	AD6218  	LDA $1862      ; Gold HB
C3/C4C7:	E5F3    	SBC $F3        ; So, GP < cost?
C3/C4C9:	B007    	BCS $C4D2      ; Exit if not
C3/C4CB:	A528    	LDA $28        ; Buy quantity
C3/C4CD:	38      	SEC            ; Prepare SBC
C3/C4CE:	E90A    	SBC #$0A       ; Subtract 10
C3/C4D0:	8528    	STA $28        ; Save changes
C3/C4D2:	60      	RTS

Fork: Go to handler for B
C3/C4D3:	4CF5C4  	JMP $C4F5      ; Handle B

Fork: Leave quantity unchanged...
C3/C4D6:	A528    	LDA $28        ; Buy quantity
C3/C4D8:	80DB    	BRA $C4B5      ; Test cost

Fork: Buy quantity -10
C3/C4DA:	A50B    	LDA $0B        ; Semi-auto keys
C3/C4DC:	8904    	BIT #$04       ; Pushing down?
C3/C4DE:	F015    	BEQ $C4F5      ; Branch if not
C3/C4E0:	200E0F  	JSR $0F0E      ; Sound: Cursor
C3/C4E3:	A528    	LDA $28        ; Buy quantity
C3/C4E5:	38      	SEC            ; Prepare SBC
C3/C4E6:	E90A    	SBC #$0A       ; Subtract 10
C3/C4E8:	3007    	BMI $C4F1      ; Use 1 if < 0
C3/C4EA:	C901    	CMP #$01       ; Down to zero?
C3/C4EC:	9007    	BCC $C4F5      ; Abort if so
C3/C4EE:	8528    	STA $28        ; Save changes
C3/C4F0:	60      	RTS

Fork: Set buy quantity to 1
C3/C4F1:	A901    	LDA #$01       ; Quantity: 1
C3/C4F3:	8528    	STA $28        ; Set order size

Fork: Handle B
C3/C4F5:	A509    	LDA $09        ; No-autofire keys
C3/C4F7:	8980    	BIT #$80       ; Pushing B?
C3/C4F9:	F006    	BEQ $C501      ; Branch if not
C3/C4FB:	20140F  	JSR $0F14      ; Sound: Cursor
C3/C4FE:	4C0AC7  	JMP $C70A      ; Exit submenu

Fork: Handle A
C3/C501:	A508    	LDA $08        ; No-autofire keys
C3/C503:	8980    	BIT #$80       ; Pushing A?
C3/C505:	F006    	BEQ $C50D      ; Exit if not
C3/C507:	20390F  	JSR $0F39      ; Sound: Cash
C3/C50A:	200EC5  	JSR $C50E      ; ...
C3/C50D:	60      	RTS            ; ...
C3/C50E:	201DCF  	JSR $CF1D      ; Bought item
C3/C511:	A400    	LDY $00        ; Item slot: 1
C3/C513:	D96918  	CMP $1869,Y    ; Slot holds it?
C3/C516:	F020    	BEQ $C538      ; Qty +1 if so
C3/C518:	C8      	INY            ; Item slot +1
C3/C519:	C00001  	CPY #$0100     ; Done all 256?
C3/C51C:	D0F5    	BNE $C513      ; Loop if not
C3/C51E:	A400    	LDY $00        ; Item slot: 1
C3/C520:	B96918  	LDA $1869,Y    ; Item in slot
C3/C523:	C9FF    	CMP #$FF       ; None?
C3/C525:	F003    	BEQ $C52A      ; Overwrite if so
C3/C527:	C8      	INY            ; Item slot +1
C3/C528:	80F6    	BRA $C520      ; Try next slot

Fork: Put bought item in empty slot
C3/C52A:	A528    	LDA $28        ; Quantity bought
C3/C52C:	996919  	STA $1969,Y    ; Assign to slot
C3/C52F:	BF899D7E	LDA $7E9D89,X  ; Bought item
C3/C533:	996918  	STA $1869,Y    ; Assign to slot
C3/C536:	8009    	BRA $C541      ; Reduce GP, etc.

Fork: Add quantity bought to stock
C3/C538:	A528    	LDA $28        ; Quantity bought
C3/C53A:	18      	CLC            ; Prepare ADC
C3/C53B:	796919  	ADC $1969,Y    ; Add qty owned
C3/C53E:	996919  	STA $1969,Y    ; Set qty owned

Fork: Reduce party's GP, leave submenu
C3/C541:	20AACA  	JSR $CAAA      ; Get order value
C3/C544:	38      	SEC            ; Prepare SBC
C3/C545:	AD6018  	LDA $1860      ; Gold LB
C3/C548:	E5F1    	SBC $F1        ; Deduct cost's
C3/C54A:	8D6018  	STA $1860      ; Save changes
C3/C54D:	C220    	REP #$20       ; 16-bit A
C3/C54F:	AD6118  	LDA $1861      ; Gold HBs
C3/C552:	E5F2    	SBC $F2        ; Deduct cost's
C3/C554:	8D6118  	STA $1861      ; Save changes
C3/C557:	E220    	SEP #$20       ; 8-bit A
C3/C559:	206933  	JSR $3369      ; Cap GP
C3/C55C:	A027D3  	LDY #$D327     ; Text pointer
C3/C55F:	202603  	JSR $0326      ; Draw "Bye!"
C3/C562:	4CD4C7  	JMP $C7D4      ; Set to exit

28: Return to Buy menu after delay
C3/C565:	A520    	LDA $20        ; Delay expired?
C3/C567:	D003    	BNE $C56C      ; Exit if not
C3/C569:	200AC7  	JSR $C70A      ; Leave submenu
C3/C56C:	60      	RTS

29: Handle sell item list
C3/C56D:	A910    	LDA #$10       ; Reset/Stop desc
C3/C56F:	0445    	TSB $45        ; Set menu flag
C3/C571:	7B      	TDC            ; Clear A
C3/C572:	852A    	STA $2A        ; List type: Stock
C3/C574:	20680F  	JSR $0F68      ; Queue list upload
C3/C577:	20CA1F  	JSR $1FCA      ; Handle L and R
C3/C57A:	B050    	BCS $C5CC      ; Exit if pushed
C3/C57C:	20A984  	JSR $84A9      ; Handle D-Pad

Fork: Handle B
C3/C57F:	A509    	LDA $09        ; No-autofire keys
C3/C581:	8980    	BIT #$80       ; Pushing B?
C3/C583:	F006    	BEQ $C58B      ; Branch if not
C3/C585:	20140F  	JSR $0F14      ; Sound: Cursor
C3/C588:	4CB7C6  	JMP $C6B7      ; Exit submenu

Fork: Handle A
C3/C58B:	A508    	LDA $08        ; No-autofire keys
C3/C58D:	8980    	BIT #$80       ; Pushing A?
C3/C58F:	F03B    	BEQ $C5CC      ; Exit if not
C3/C591:	2026CF  	JSR $CF26      ; Selected item
C3/C594:	C9FF    	CMP #$FF       ; Empty slot?
C3/C596:	F02E    	BEQ $C5C6      ; Fail if so
C3/C598:	201D0F  	JSR $0F1D      ; Sound: Click
C3/C59B:	A9C0    	LDA #$C0       ; Scrollbar: Off
C3/C59D:	1446    	TRB $46        ; Set anim index
C3/C59F:	20A971  	JSR $71A9      ; Blank item list
C3/C5A2:	20680F  	JSR $0F68      ; Set to upload it
C3/C5A5:	20D313  	JSR $13D3      ; Upload it now
C3/C5A8:	A92A    	LDA #$2A       ; C3/C5CD
C3/C5AA:	8526    	STA $26        ; Next: Order menu
C3/C5AC:	A20800  	LDX #$0008     ; X: 8
C3/C5AF:	8655    	STX $55        ; Set cursor's
C3/C5B1:	A23400  	LDX #$0034     ; Y: 52
C3/C5B4:	8657    	STX $57        ; Set cursor's
C3/C5B6:	2002CA  	JSR $CA02      ; Draw blue text
C3/C5B9:	2030CA  	JSR $CA30      ; Draw item info
C3/C5BC:	A016D3  	LDY #$D316     ; Text pointer
C3/C5BF:	202603  	JSR $0326      ; Draw "How many?"
C3/C5C2:	20C4C7  	JSR $C7C4      ; Switch screen
C3/C5C5:	60      	RTS

Fork: Invalid selection
C3/C5C6:	202B0F  	JSR $0F2B      ; Play buzzer
C3/C5C9:	20F830  	JSR $30F8      ; Pixelate screen
C3/C5CC:	60      	RTS

2A: Handle sell order menu
C3/C5CD:	203DC4  	JSR $C43D      ; Set desc flags
C3/C5D0:	204FC4  	JSR $C44F      ; Load description
C3/C5D3:	20BCCA  	JSR $CABC      ; Get order value
C3/C5D6:	200ECB  	JSR $CB0E      ; Draw qty, offer

Fork: Sell quantity +1
C3/C5D9:	A50B    	LDA $0B        ; Semi-auto keys
C3/C5DB:	8901    	BIT #$01       ; Pushing right?
C3/C5DD:	F00D    	BEQ $C5EC      ; Branch if not
C3/C5DF:	200E0F  	JSR $0F0E      ; Sound: Cursor
C3/C5E2:	A528    	LDA $28        ; Sell quantity
C3/C5E4:	C564    	CMP $64        ; Can sell more?
C3/C5E6:	F04F    	BEQ $C637      ; Abort if not
C3/C5E8:	E628    	INC $28        ; Quantity +1
C3/C5EA:	804B    	BRA $C637      ; Handle B

Fork: Sell quantity -1
C3/C5EC:	A50B    	LDA $0B        ; Semi-auto keys
C3/C5EE:	8902    	BIT #$02       ; Pushing left?
C3/C5F0:	F00B    	BEQ $C5FD      ; Branch if not
C3/C5F2:	200E0F  	JSR $0F0E      ; Sound: Cursor
C3/C5F5:	A528    	LDA $28        ; Sell quantity
C3/C5F7:	C901    	CMP #$01       ; One?
C3/C5F9:	F03C    	BEQ $C637      ; Abort if so
C3/C5FB:	C628    	DEC $28        ; Quantity -1

Fork: Sell quantity +10
C3/C5FD:	A50B    	LDA $0B        ; Semi-auto keys
C3/C5FF:	8908    	BIT #$08       ; Pushing up?
C3/C601:	F018    	BEQ $C61B      ; Branch if not
C3/C603:	200E0F  	JSR $0F0E      ; Sound: Cursor
C3/C606:	A90A    	LDA #$0A       ; Quantity: 10
C3/C608:	18      	CLC            ; Prepare ADC
C3/C609:	6528    	ADC $28        ; Add order size
C3/C60B:	C564    	CMP $64        ; Owning enough?
C3/C60D:	F006    	BEQ $C615      ; ...
C3/C60F:	B004    	BCS $C615      ; Limit if not
C3/C611:	8528    	STA $28        ; Set order size
C3/C613:	8022    	BRA $C637      ; Handle B

Fork: Limit sell quantity
C3/C615:	A564    	LDA $64        ; Quantity owned
C3/C617:	8528    	STA $28        ; Set order size
C3/C619:	801C    	BRA $C637      ; Handle B

Fork: Sell quantity -10
C3/C61B:	A50B    	LDA $0B        ; Semi-auto keys
C3/C61D:	8904    	BIT #$04       ; Pushing down?
C3/C61F:	F016    	BEQ $C637      ; Branch if not
C3/C621:	200E0F  	JSR $0F0E      ; Sound: Cursor
C3/C624:	A528    	LDA $28        ; Sell quantity
C3/C626:	38      	SEC            ; Prepare SBC
C3/C627:	E90A    	SBC #$0A       ; Subtract 10
C3/C629:	3008    	BMI $C633      ; Use 1 if < 0
C3/C62B:	C901    	CMP #$01       ; Down to zero?
C3/C62D:	9008    	BCC $C637      ; Abort if so
C3/C62F:	8528    	STA $28        ; Save changes
C3/C631:	8004    	BRA $C637      ; Handle B

Fork: Set sell quantity to 1
C3/C633:	A901    	LDA #$01       ; Quantity: 1
C3/C635:	8528    	STA $28        ; Set order size

Fork: Handle B
C3/C637:	A509    	LDA $09        ; No-autofire keys
C3/C639:	8980    	BIT #$80       ; Pushing B?
C3/C63B:	F015    	BEQ $C652      ; Branch if not
C3/C63D:	20140F  	JSR $0F14      ; Sound: Cursor
C3/C640:	A600    	LDX $00        ; Clear X
C3/C642:	8639    	STX $39        ; BG2 X-Pos: 0
C3/C644:	863B    	STX $3B        ; BG2 Y-Pos: 0
C3/C646:	20B7C8  	JSR $C8B7      ; Clean up BG3
C3/C649:	A07ED2  	LDY #$D27E     ; Text pointer
C3/C64C:	202603  	JSR $0326      ; Draw options
C3/C64F:	4C26C7  	JMP $C726      ; Exit submenu

Fork: Handle A
C3/C652:	A508    	LDA $08        ; No-autofire keys
C3/C654:	8980    	BIT #$80       ; Pushing A?
C3/C656:	F006    	BEQ $C65E      ; Exit if not
C3/C658:	20390F  	JSR $0F39      ; Sound: Cash
C3/C65B:	205FC6  	JSR $C65F      ; ...
C3/C65E:	60      	RTS            ; ...
C3/C65F:	20BCCA  	JSR $CABC      ; Get order value
C3/C662:	18      	CLC            ; Prepare ADC
C3/C663:	AD6018  	LDA $1860      ; Gold LB
C3/C666:	65F1    	ADC $F1        ; Add cost's
C3/C668:	8D6018  	STA $1860      ; Save changes
C3/C66B:	C220    	REP #$20       ; 16-bit A
C3/C66D:	AD6118  	LDA $1861      ; Gold HBs
C3/C670:	65F2    	ADC $F2        ; Add cost's + C
C3/C672:	8D6118  	STA $1861      ; Save changes
C3/C675:	E220    	SEP #$20       ; 8-bit A
C3/C677:	A564    	LDA $64        ; Quantity owned
C3/C679:	C528    	CMP $28        ; Sold all of it?
C3/C67B:	F00E    	BEQ $C68B      ; Branch if so
C3/C67D:	2026CF  	JSR $CF26      ; Define Y
C3/C680:	B96919  	LDA $1969,Y    ; Quantity owned
C3/C683:	38      	SEC            ; Prepare SBC
C3/C684:	E528    	SBC $28        ; Deduct qty sold
C3/C686:	996919  	STA $1969,Y    ; Save changes
C3/C689:	800C    	BRA $C697      ; Skip 5 lines

Fork: Clear item slot, leave submenu
C3/C68B:	2026CF  	JSR $CF26      ; Define Y
C3/C68E:	A9FF    	LDA #$FF       ; Empty item
C3/C690:	996918  	STA $1869,Y    ; Put in slot
C3/C693:	7B      	TDC            ; Quantity: 0
C3/C694:	996919  	STA $1969,Y    ; Assign to slot
C3/C697:	206933  	JSR $3369      ; Cap GP
C3/C69A:	A027D3  	LDY #$D327     ; Text pointer
C3/C69D:	202603  	JSR $0326      ; Draw "Bye!"
C3/C6A0:	A92B    	LDA #$2B       ; C3/C6A9
C3/C6A2:	8526    	STA $26        ; Next: Exit
C3/C6A4:	A920    	LDA #$20       ; Frames: 32
C3/C6A6:	8520    	STA $20        ; Set delay
C3/C6A8:	60      	RTS

2B: Return to Sell menu after delay
C3/C6A9:	A520    	LDA $20        ; Delay expired?
C3/C6AB:	D009    	BNE $C6B6      ; Exit if not
C3/C6AD:	A600    	LDX $00        ; Clear X
C3/C6AF:	8639    	STX $39        ; BG2 X-Pos: 0
C3/C6B1:	863B    	STX $3B        ; BG2 Y-Pos: 0
C3/C6B3:	2026C7  	JSR $C726      ; Exit submenu
C3/C6B6:	60      	RTS

Return to main shop menu
C3/C6B7:	A9C0    	LDA #$C0       ; Scrollbar: Off
C3/C6B9:	1446    	TRB $46        ; Set anim index
C3/C6BB:	6447    	STZ $47        ; Actors: Off
C3/C6BD:	20DDC7  	JSR $C7DD      ; Load navig data
C3/C6C0:	20E6C7  	JSR $C7E6      ; Relocate cursor
C3/C6C3:	20680F  	JSR $0F68      ; Set to upload BG1
C3/C6C6:	20ABC8  	JSR $C8AB      ; Clear BG1 maps
C3/C6C9:	20D313  	JSR $13D3      ; Refresh screen
C3/C6CC:	20A40F  	JSR $0FA4      ; Queue BG3 upload
C3/C6CF:	20B7C8  	JSR $C8B7      ; Clean up BG3
C3/C6D2:	A07ED2  	LDY #$D27E     ; Text pointer
C3/C6D5:	202603  	JSR $0326      ; Draw options
C3/C6D8:	A0C2D2  	LDY #$D2C2     ; Text pointer
C3/C6DB:	202603  	JSR $0326      ; Draw greeting
C3/C6DE:	A400    	LDY $00        ; Clear Y
C3/C6E0:	8439    	STY $39        ; Reset BG2 X-Pos
C3/C6E2:	843B    	STY $3B        ; Reset BG2 Y-Pos
C3/C6E4:	A925    	LDA #$25       ; C3/C3F2
C3/C6E6:	8526    	STA $26        ; Next: Shop menu
C3/C6E8:	60      	RTS

Handle selected option in shop menu
C3/C6E9:	7B      	TDC            ; Clear A
C3/C6EA:	A54B    	LDA $4B        ; Cursor slot
C3/C6EC:	0A      	ASL A          ; Double it
C3/C6ED:	AA      	TAX            ; Index it
C3/C6EE:	7CF1C6  	JMP ($C6F1,X)  ; Handle option

Jump table
C3/C6F1:	FAC6    	; BUY
C3/C6F3:	1EC7    	; SELL
C3/C6F5:	F7C6    	; EXIT

Exit shop
C3/C6F7:	4C0AC4  	JMP $C40A      ; Queue menu exit

Initialize Buy menu
C3/C6FA:	20F7C7  	JSR $C7F7      ; Load navig data
C3/C6FD:	2000C8  	JSR $C800      ; Relocate cursor
C3/C700:	A908    	LDA #$08       ; Arm waving: On
C3/C702:	1447    	TRB $47        ; Never off...
C3/C704:	20F5CF  	JSR $CFF5      ; Create actors
C3/C707:	2096D1  	JSR $D196      ; Create signs
C3/C70A:	A00001  	LDY #$0100     ; X: 256
C3/C70D:	8439    	STY $39        ; Set BG2 X-Pos
C3/C70F:	A400    	LDY $00        ; Y: 0
C3/C711:	843B    	STY $3B        ; Set BG2 Y-Pos
C3/C713:	20E3C8  	JSR $C8E3      ; Draw all text
C3/C716:	2058CC  	JSR $CC58      ; Build sign list
C3/C719:	A926    	LDA #$26       ; C3/C414
C3/C71B:	8526    	STA $26        ; Next: Buy list
C3/C71D:	60      	RTS

Initialize Sell menu
C3/C71E:	20A40F  	JSR $0FA4      ; Queue BG3 upload
C3/C721:	2037CB  	JSR $CB37      ; Cursor/list/bar
C3/C724:	8003    	BRA $C729      ; Skip a line

Return to Sell menu
C3/C726:	2059CB  	JSR $CB59      ; Draw list; bar
C3/C729:	20B7C8  	JSR $C8B7      ; Draw title, GP
C3/C72C:	A07ED2  	LDY #$D27E     ; Text pointer
C3/C72F:	202603  	JSR $0326      ; Draw options
C3/C732:	A000D3  	LDY #$D300     ; Text pointer
C3/C735:	202603  	JSR $0326      ; Draw question
C3/C738:	A929    	LDA #$29       ; C3/C56D
C3/C73A:	8526    	STA $26        ; Next: Sell list
C3/C73C:	60      	RTS

Invoke buy order menu if justified
C3/C73D:	201DCF  	JSR $CF1D      ; Selected item
C3/C740:	20A28A  	JSR $8AA2      ; Compute index
C3/C743:	AE3421  	LDX $2134      ; Load it
C3/C746:	BF0050D8	LDA $D85000,X  ; Properties
C3/C74A:	2907    	AND #$07       ; Tool?
C3/C74C:	D013    	BNE $C761      ; Branch if not
C3/C74E:	20EDCB  	JSR $CBED      ; Define $64
C3/C751:	A564    	LDA $64        ; Owning none?
C3/C753:	F00C    	BEQ $C761      ; Test GP if so
C3/C755:	202B0F  	JSR $0F2B      ; Play buzzer
C3/C758:	A063D3  	LDY #$D363     ; Text pointer
C3/C75B:	202603  	JSR $0326      ; Draw excuse
C3/C75E:	4CD4C7  	JMP $C7D4      ; Set to exit

Fork: Check if enough money
C3/C761:	AD6218  	LDA $1862      ; GP > 65535?
C3/C764:	D02F    	BNE $C795      ; Ample if so
C3/C766:	7B      	TDC            ; ...
C3/C767:	A54B    	LDA $4B        ; Selected slot
C3/C769:	0A      	ASL A          ; Double it
C3/C76A:	AA      	TAX            ; Index it
C3/C76B:	C220    	REP #$20       ; 16-bit A
C3/C76D:	BF099F7E	LDA $7E9F09,X  ; Item's price
C3/C771:	CD6018  	CMP $1860      ; Got as much?
C3/C774:	E220    	SEP #$20       ; 8-bit A
C3/C776:	F01D    	BEQ $C795      ; Ample if so
C3/C778:	901B    	BCC $C795      ; Or if more
C3/C77A:	202B0F  	JSR $0F2B      ; Play buzzer
C3/C77D:	A03DD3  	LDY #$D33D     ; Text pointer
C3/C780:	202603  	JSR $0326      ; Draw excuse
C3/C783:	4CD4C7  	JMP $C7D4      ; Set to exit

Sub: Define buy quantity limit
C3/C786:	A564    	LDA $64        ; Qty in stock
C3/C788:	18      	CLC            ; Prepare ADC
C3/C789:	6565    	ADC $65        ; Add qty worn
C3/C78B:	8569    	STA $69        ; Set total owned
C3/C78D:	A963    	LDA #$63       ; Quantity: 99
C3/C78F:	38      	SEC            ; Prepare SBC
C3/C790:	E569    	SBC $69        ; Sub total owned
C3/C792:	856A    	STA $6A        ; Set buy limit
C3/C794:	60      	RTS

Fork: Check if owning 99
C3/C795:	A569    	LDA $69        ; Qty owned/worn
C3/C797:	C963    	CMP #$63       ; Under 99?
C3/C799:	900C    	BCC $C7A7      ; Okay if so
C3/C79B:	202B0F  	JSR $0F2B      ; Play buzzer
C3/C79E:	A051D3  	LDY #$D351     ; Text pointer
C3/C7A1:	202603  	JSR $0326      ; Draw "Too many!"
C3/C7A4:	4CD4C7  	JMP $C7D4      ; Set to exit

Fork: Can buy item
C3/C7A7:	201D0F  	JSR $0F1D      ; Sound: Click
C3/C7AA:	A20800  	LDX #$0008     ; X: 8
C3/C7AD:	8655    	STX $55        ; Set cursor's
C3/C7AF:	A23400  	LDX #$0034     ; Y: 52
C3/C7B2:	8657    	STX $57        ; Set cursor's
C3/C7B4:	A927    	LDA #$27       ; C3/C45C
C3/C7B6:	8526    	STA $26        ; Next: Order menu
C3/C7B8:	2002CA  	JSR $CA02      ; Draw blue text
C3/C7BB:	2017CA  	JSR $CA17      ; Draw item info
C3/C7BE:	A0EED2  	LDY #$D2EE     ; Text pointer
C3/C7C1:	202603  	JSR $0326      ; Draw "How many?"

Fork: Switch screen
C3/C7C4:	A00001  	LDY #$0100     ; Y: 256
C3/C7C7:	843B    	STY $3B        ; Set BG2 Y-Pos
C3/C7C9:	A400    	LDY $00        ; X: 0
C3/C7CB:	8439    	STY $39        ; Set BG2 X-Pos
C3/C7CD:	20D9B0  	JSR $B0D9      ; Clear desc GFX
C3/C7D0:	2037B0  	JSR $B037      ; Build desc map
C3/C7D3:	60      	RTS

Set to return to Buy menu after delay
C3/C7D4:	A928    	LDA #$28       ; C3/C565
C3/C7D6:	8526    	STA $26        ; Next: Exit
C3/C7D8:	A920    	LDA #$20       ; Frames: 32
C3/C7DA:	8520    	STA $20        ; Set delay
C3/C7DC:	60      	RTS

Load navigation data for main shop menu
C3/C7DD:	A0ECC7  	LDY #$C7EC     ; C3/C7EC
C3/C7E0:	4C8106  	JMP $0681      ; Load navig data

Handle D-Pad for main shop menu
C3/C7E3:	20B007  	JSR $07B0      ; Handle D-Pad
C3/C7E6:	A0F1C7  	LDY #$C7F1     ; C3/C7F1
C3/C7E9:	4CC306  	JMP $06C3      ; Relocate cursor

Navigation data for main shop menu
C3/C7EC:	01      	; Wraps horizontally
C3/C7ED:	00      	; Initial column
C3/C7EE:	00      	; Initial row
C3/C7EF:	03      	; 3 columns
C3/C7F0:	01      	; 1 row

Cursor positions for main shop menu
C3/C7F1:	0834    	; BUY
C3/C7F3:	2834    	; SELL
C3/C7F5:	4834    	; EXIT

Load navigation data for Buy menu
C3/C7F7:	A006C8  	LDY #$C806     ; C3/C806
C3/C7FA:	4C8106  	JMP $0681      ; Load navig data

Handle D-Pad for Buy menu
C3/C7FD:	20B007  	JSR $07B0      ; Handle D-Pad
C3/C800:	A00BC8  	LDY #$C80B     ; C3/C80B
C3/C803:	4CC306  	JMP $06C3      ; Relocate cursor

Navigation data for Buy menu
C3/C806:	80      	; Wraps vertically
C3/C807:	00      	; Initial column
C3/C808:	00      	; Initial row
C3/C809:	01      	; 1 column
C3/C80A:	08      	; 8 rows

Cursor positions for Buy menu
C3/C80B:	0834    	; Item 1
C3/C80D:	0840    	; Item 2
C3/C80F:	084C    	; Item 3
C3/C811:	0858    	; Item 4
C3/C813:	0864    	; Item 5
C3/C815:	0870    	; Item 6
C3/C817:	087C    	; Item 7
C3/C819:	0888    	; Item 8

Draw main shop menu and submenu windows, set to update description
C3/C81B:	20BC71  	JSR $71BC      ; Clear BG2 map A
C3/C81E:	20C171  	JSR $71C1      ; Clear BG2 map B
C3/C821:	20C671  	JSR $71C6      ; Clear BG2 map C
C3/C824:	A072CB  	LDY #$CB72     ; C3/CB72
C3/C827:	20C403  	JSR $03C4      ; Draw title box A
C3/C82A:	A076CB  	LDY #$CB76     ; C3/CB76
C3/C82D:	20C403  	JSR $03C4      ; Draw chat box A
C3/C830:	A07ACB  	LDY #$CB7A     ; C3/CB7A
C3/C833:	20C403  	JSR $03C4      ; Draw option box
C3/C836:	A07ECB  	LDY #$CB7E     ; C3/CB7E
C3/C839:	20C403  	JSR $03C4      ; Draw GP box
C3/C83C:	A082CB  	LDY #$CB82     ; C3/CB82
C3/C83F:	20C403  	JSR $03C4      ; Draw item box A
C3/C842:	A086CB  	LDY #$CB86     ; C3/CB86
C3/C845:	20C403  	JSR $03C4      ; Draw title box B
C3/C848:	A08ACB  	LDY #$CB8A     ; C3/CB8A
C3/C84B:	20C403  	JSR $03C4      ; Draw chat box B
C3/C84E:	A096CB  	LDY #$CB96     ; C3/CB96
C3/C851:	20C403  	JSR $03C4      ; Draw actor box A
C3/C854:	A08ECB  	LDY #$CB8E     ; C3/CB8E
C3/C857:	20C403  	JSR $03C4      ; Draw item box B
C3/C85A:	A092CB  	LDY #$CB92     ; C3/CB92
C3/C85D:	20C403  	JSR $03C4      ; Draw amounts box
C3/C860:	A09ACB  	LDY #$CB9A     ; C3/CB9A
C3/C863:	20C403  	JSR $03C4      ; Draw title box C
C3/C866:	A0AECB  	LDY #$CBAE     ; C3/CBAE
C3/C869:	20C403  	JSR $03C4      ; Draw amounts box
C3/C86C:	A0A6CB  	LDY #$CBA6     ; C3/CBA6
C3/C86F:	20C403  	JSR $03C4      ; Draw desc box
C3/C872:	A09ECB  	LDY #$CB9E     ; C3/CB9E
C3/C875:	20C403  	JSR $03C4      ; Draw chat box C
C3/C878:	A0AACB  	LDY #$CBAA     ; C3/CBAA
C3/C87B:	20C403  	JSR $03C4      ; Draw actor box B
C3/C87E:	A0A2CB  	LDY #$CBA2     ; C3/CBA2
C3/C881:	20C403  	JSR $03C4      ; Draw item box C
C3/C884:	20BD0E  	JSR $0EBD      ; Upload BG2 A+B
C3/C887:	20CB0E  	JSR $0ECB      ; Upload BG2 C+D
C3/C88A:	20ABC8  	JSR $C8AB      ; Clear BG1 maps
C3/C88D:	20930E  	JSR $0E93      ; Upload BG1 A+B
C3/C890:	20AF0E  	JSR $0EAF      ; Upload BG1 C+D...
C3/C893:	20B7C8  	JSR $C8B7      ; Draw title, GP
C3/C896:	A07ED2  	LDY #$D27E     ; Text pointer
C3/C899:	202603  	JSR $0326      ; Draw options
C3/C89C:	A0C2D2  	LDY #$D2C2     ; Text pointer
C3/C89F:	202603  	JSR $0326      ; Draw greeting
C3/C8A2:	20FF1B  	JSR $1BFF      ; Queue desc anim
C3/C8A5:	20D90E  	JSR $0ED9      ; Upload BG3 A+B
C3/C8A8:	4CE70E  	JMP $0EE7      ; Upload BG3 C+D

Clear BG1 tilemaps (for shop)
C3/C8AB:	20A971  	JSR $71A9      ; Clear BG1 map A
C3/C8AE:	20AD71  	JSR $71AD      ; Clear BG1 map B
C3/C8B1:	20B271  	JSR $71B2      ; Clear BG1 map C
C3/C8B4:	4CB771  	JMP $71B7      ; Clear BG1 map D

Draw shop title and party's gold, clear rest of BG3
C3/C8B7:	20D071  	JSR $71D0      ; Clear BG3 map A
C3/C8BA:	20D571  	JSR $71D5      ; Clear BG3 map B
C3/C8BD:	20DA71  	JSR $71DA      ; Clear BG3 map C
C3/C8C0:	202ECF  	JSR $CF2E      ; Draw title
C3/C8C3:	2052D2  	JSR $D252      ; ...
C3/C8C6:	A08BD2  	LDY #$D28B     ; Text pointer
C3/C8C9:	202603  	JSR $0326      ; Draw "GP"
C3/C8CC:	204DD2  	JSR $D24D      ; Color: User's
C3/C8CF:	AC6018  	LDY $1860      ; Gold LBs
C3/C8D2:	84F1    	STY $F1        ; Memorize it
C3/C8D4:	AD6218  	LDA $1862      ; Gold HB
C3/C8D7:	85F3    	STA $F3        ; Memorize it
C3/C8D9:	200506  	JSR $0605      ; Turn into text
C3/C8DC:	A2337A  	LDX #$7A33     ; Text position
C3/C8DF:	202F05  	JSR $052F      ; Draw GP total
C3/C8E2:	60      	RTS

Draw all text for Buy menu
C3/C8E3:	20B7C8  	JSR $C8B7      ; Draw title, GP
C3/C8E6:	A0D8D2  	LDY #$D2D8     ; Text pointer
C3/C8E9:	202603  	JSR $0326      ; Draw "Help..."
C3/C8EC:	203CD2  	JSR $D23C      ; Draw Owned, Eqpd
C3/C8EF:	A400    	LDY $00        ; Clear Y
C3/C8F1:	84F1    	STY $F1        ; Menu slot: 1
C3/C8F3:	64E6    	STZ $E6        ; List size: 0
C3/C8F5:	C220    	REP #$20       ; 16-bit A
C3/C8F7:	A5F1    	LDA $F1        ; Menu slot
C3/C8F9:	0A      	ASL A          ; Double it
C3/C8FA:	AA      	TAX            ; Index it
C3/C8FB:	BF59C9C3	LDA $C3C959,X  ; Tilemap ptr
C3/C8FF:	8F899E7E	STA $7E9E89    ; Set position
C3/C903:	A5F1    	LDA $F1        ; Menu slot
C3/C905:	18      	CLC            ; ...
C3/C906:	6567    	ADC $67        ; Add shop index
C3/C908:	1A      	INC A          ; Skip flags
C3/C909:	AA      	TAX            ; Index it
C3/C90A:	E220    	SEP #$20       ; 8-bit A
C3/C90C:	BFC07AC4	LDA $C47AC0,X  ; Shop item
C3/C910:	A6F1    	LDX $F1        ; Menu slot
C3/C912:	9F899D7E	STA $7E9D89,X  ; Assign item
C3/C916:	C9FF    	CMP #$FF       ; Nothing?
C3/C918:	F027    	BEQ $C941      ; Branch if so
C3/C91A:	20C3CF  	JSR $CFC3      ; Load name
C3/C91D:	20B987  	JSR $87B9      ; Draw name
C3/C920:	A6F1    	LDX $F1        ; Menu slot
C3/C922:	BF899D7E	LDA $7E9D89,X  ; Item in slot
C3/C926:	20A28A  	JSR $8AA2      ; Compute index
C3/C929:	2069C9  	JSR $C969      ; Define price
C3/C92C:	20B105  	JSR $05B1      ; Turn into text
C3/C92F:	C220    	REP #$20       ; 16-bit A
C3/C931:	AF899E7E	LDA $7E9E89    ; Tilemap ptr
C3/C935:	18      	CLC            ; Prepare ADC
C3/C936:	695600  	ADC #$0056     ; Row +1, col +11
C3/C939:	AA      	TAX            ; Put sum in X
C3/C93A:	E220    	SEP #$20       ; 8-bit A
C3/C93C:	201D05  	JSR $051D      ; Draw price
C3/C93F:	E6E6    	INC $E6        ; List size +1
C3/C941:	A4F1    	LDY $F1        ; Menu slot
C3/C943:	C8      	INY            ; Menu slot +1
C3/C944:	84F1    	STY $F1        ; Save changes
C3/C946:	C00800  	CPY #$0008     ; Done 8 items?
C3/C949:	D0AA    	BNE $C8F5      ; Loop if not
C3/C94B:	A5E6    	LDA $E6        ; List size
C3/C94D:	8554    	STA $54        ; Set cursor limit
C3/C94F:	20B2CB  	JSR $CBB2      ; Get qties owned
C3/C952:	20DFCB  	JSR $CBDF      ; Draw qty owned
C3/C955:	2003CC  	JSR $CC03      ; Draw qty worn
C3/C958:	60      	RTS

Tilemap pointers for Buy menu
C3/C959:	CF79    	; Item 1
C3/C95B:	4F7A    	; Item 2
C3/C95D:	CF7A    	; Item 3
C3/C95F:	4F7B    	; Item 4
C3/C961:	CF7B    	; Item 5
C3/C963:	4F7C    	; Item 6
C3/C965:	CF7C    	; Item 7
C3/C967:	4F7D    	; Item 8

Define cost to buy item
C3/C969:	C220    	REP #$20       ; 16-bit A
C3/C96B:	AD3421  	LDA $2134      ; Item index
C3/C96E:	18      	CLC            ; Prepare ADC
C3/C96F:	691C00  	ADC #$001C     ; Point to price
C3/C972:	AA      	TAX            ; Index sum
C3/C973:	BF0050D8	LDA $D85000,X  ; Base price
C3/C977:	2089C9  	JSR $C989      ; Apply multiplier
C3/C97A:	85F3    	STA $F3        ; Memorize result
C3/C97C:	A5F1    	LDA $F1        ; Menu slot
C3/C97E:	0A      	ASL A          ; Double it
C3/C97F:	AA      	TAX            ; Index it
C3/C980:	A5F3    	LDA $F3        ; Modified price
C3/C982:	9F099F7E	STA $7E9F09,X  ; Set item price
C3/C986:	E220    	SEP #$20       ; 8-bit A
C3/C988:	60      	RTS

Apply price multiplier for Buy menu
C3/C989:	48      	PHA            ; Save price
C3/C98A:	A667    	LDX $67        ; Shop index
C3/C98C:	7B      	TDC            ; Clear A
C3/C98D:	E220    	SEP #$20       ; 8-bit A
C3/C98F:	BFC07AC4	LDA $C47AC0,X  ; Shop flags
C3/C993:	2938    	AND #$38       ; Get modifier
C3/C995:	C220    	REP #$20       ; 16-bit A
C3/C997:	4A      	LSR A          ; Put in b2-b4
C3/C998:	4A      	LSR A          ; Put in b1-b3
C3/C999:	AA      	TAX            ; Index it
C3/C99A:	68      	PLA            ; Base price
C3/C99B:	7C9EC9  	JMP ($C99E,X)  ; Apply modifier

Jump table for price multipliers
C3/C99E:	B2C9    	; 100%
C3/C9A0:	ACC9    	; 150%
C3/C9A2:	B3C9    	; 200%
C3/C9A4:	B5C9    	; 50%
C3/C9A6:	B7C9    	; 50% if female leads, 150% otherwise
C3/C9A8:	D3C9    	; 50% if male leads, 150% otherwise
C3/C9AA:	EFC9    	; 50% if Edgar leads

Increase price by 50% (unused)
C3/C9AC:	85E7    	STA $E7        ; Save price
C3/C9AE:	4A      	LSR A          ; Halve it
C3/C9AF:	18      	CLC            ; Prepare ADC
C3/C9B0:	65E7    	ADC $E7        ; Add base price
C3/C9B2:	60      	RTS

Double price (unused)
C3/C9B3:	0A      	ASL A          ; Double price
C3/C9B4:	60      	RTS

Halve price
C3/C9B5:	4A      	LSR A          ; Halve price
C3/C9B6:	60      	RTS

Halve price if female leads, raise by 50% otherwise (unused)
C3/C9B7:	48      	PHA            ; Save price
C3/C9B8:	E220    	SEP #$20       ; 8-bit A
C3/C9BA:	AD0202  	LDA $0202      ; Leader sprite
C3/C9BD:	C906    	CMP #$06       ; Celes?
C3/C9BF:	F00D    	BEQ $C9CE      ; Halve if so
C3/C9C1:	C908    	CMP #$08       ; Relm?
C3/C9C3:	F009    	BEQ $C9CE      ; Halve if so
C3/C9C5:	C900    	CMP #$00       ; Terra?
C3/C9C7:	F005    	BEQ $C9CE      ; Halve if so
C3/C9C9:	C220    	REP #$20       ; 16-bit A
C3/C9CB:	68      	PLA            ; Base price
C3/C9CC:	80DE    	BRA $C9AC      ; Add 50%
C3/C9CE:	C220    	REP #$20       ; 16-bit A
C3/C9D0:	68      	PLA            ; Base price
C3/C9D1:	80E2    	BRA $C9B5      ; Halve it

Halve price if male leads, raise by 50% otherwise (unused)
C3/C9D3:	48      	PHA            ; Save price
C3/C9D4:	E220    	SEP #$20       ; 8-bit A
C3/C9D6:	AD0202  	LDA $0202      ; Leader sprite
C3/C9D9:	C906    	CMP #$06       ; Celes?
C3/C9DB:	F00D    	BEQ $C9EA      ; +50% if so
C3/C9DD:	C908    	CMP #$08       ; Relm?
C3/C9DF:	F009    	BEQ $C9EA      ; +50% if so
C3/C9E1:	C900    	CMP #$00       ; Terra?
C3/C9E3:	F005    	BEQ $C9EA      ; +50% if so
C3/C9E5:	C220    	REP #$20       ; 16-bit A
C3/C9E7:	68      	PLA            ; Base price
C3/C9E8:	80CB    	BRA $C9B5      ; Halve it
C3/C9EA:	C220    	REP #$20       ; 16-bit A
C3/C9EC:	68      	PLA            ; Base price
C3/C9ED:	80BD    	BRA $C9AC      ; Add 50%

Halve price if Edgar leads
C3/C9EF:	48      	PHA            ; Save price
C3/C9F0:	E220    	SEP #$20       ; 8-bit A
C3/C9F2:	AD0202  	LDA $0202      ; Leader sprite
C3/C9F5:	C904    	CMP #$04       ; Edgar?
C3/C9F7:	F004    	BEQ $C9FD      ; Halve if so
C3/C9F9:	C220    	REP #$20       ; 16-bit A
C3/C9FB:	68      	PLA            ; Base price
C3/C9FC:	60      	RTS            ; Exit
C3/C9FD:	C220    	REP #$20       ; 16-bit A
C3/C9FF:	68      	PLA            ; Base price
C3/CA00:	80B3    	BRA $C9B5      ; Halve it

Draw blue text for shop order menu, position item name
C3/CA02:	20A40F  	JSR $0FA4      ; Queue BG3 upload
C3/CA05:	20B7C8  	JSR $C8B7      ; Clean up BG3
C3/CA08:	203CD2  	JSR $D23C      ; Draw Owned, Eqpd
C3/CA0B:	C220    	REP #$20       ; 16-bit A
C3/CA0D:	A9CF79  	LDA #$79CF     ; Tilemap ptr
C3/CA10:	8F899E7E	STA $7E9E89    ; Set item position
C3/CA14:	E220    	SEP #$20       ; 8-bit A
C3/CA16:	60      	RTS

Draw item specs for buy order menu, reset buy quantity
C3/CA17:	2049CA  	JSR $CA49      ; Draw power info
C3/CA1A:	20DFCB  	JSR $CBDF      ; Draw qty owned
C3/CA1D:	2003CC  	JSR $CC03      ; Draw qty worn
C3/CA20:	201DCF  	JSR $CF1D      ; Selected item
C3/CA23:	20C3CF  	JSR $CFC3      ; Load name
C3/CA26:	20B987  	JSR $87B9      ; Draw name
C3/CA29:	A901    	LDA #$01       ; Quantity: 1
C3/CA2B:	8528    	STA $28        ; Set order size
C3/CA2D:	4C05CB  	JMP $CB05      ; Draw size, value

Draw item specs for sell order menu, reset sell quantity
C3/CA30:	20F8CB  	JSR $CBF8      ; Draw qty owned
C3/CA33:	20C1CE  	JSR $CEC1      ; Draw qty worn
C3/CA36:	204FCA  	JSR $CA4F      ; Draw power info
C3/CA39:	2026CF  	JSR $CF26      ; Selected item
C3/CA3C:	20C3CF  	JSR $CFC3      ; Load name
C3/CA3F:	20B987  	JSR $87B9      ; Draw name
C3/CA42:	A901    	LDA #$01       ; Quantity: 1
C3/CA44:	8528    	STA $28        ; Set order size
C3/CA46:	4C0ECB  	JMP $CB0E      ; Draw size, value

Draw power-related text for Buy menu
C3/CA49:	201DCF  	JSR $CF1D      ; Selected item
C3/CA4C:	4C55CA  	JMP $CA55      ; Draw power info

Draw power-related text for Sell menu
C3/CA4F:	2026CF  	JSR $CF26      ; Selected item
C3/CA52:	4C55CA  	JMP $CA55      ; ...

Draw power-related text for Buy or Sell menu
C3/CA55:	20A28A  	JSR $8AA2      ; Compute index
C3/CA58:	AE3421  	LDX $2134      ; Load it
C3/CA5B:	BF0050D8	LDA $D85000,X  ; Properties
C3/CA5F:	2907    	AND #$07       ; Tool?
C3/CA61:	F046    	BEQ $CAA9      ; Exit if so
C3/CA63:	C906    	CMP #$06       ; Consumable?
C3/CA65:	F042    	BEQ $CAA9      ; Exit if so
C3/CA67:	C901    	CMP #$01       ; Weapon?
C3/CA69:	F022    	BEQ $CA8D      ; Branch if so
C3/CA6B:	204DD2  	JSR $D24D      ; Color: User's
C3/CA6E:	BF1450D8	LDA $D85014,X  ; Defense
C3/CA72:	206305  	JSR $0563      ; Turn into text
C3/CA75:	A2A97B  	LDX #$7BA9     ; Text position
C3/CA78:	204305  	JSR $0543      ; Draw 3 digits
C3/CA7B:	2052D2  	JSR $D252      ; Color: Blue
C3/CA7E:	A0B7D2  	LDY #$D2B7     ; Text pointer
C3/CA81:	202603  	JSR $0326      ; Draw "Defense"
C3/CA84:	A0BED2  	LDY #$D2BE     ; Text pointer
C3/CA87:	20F902  	JSR $02F9      ; Draw ""
C3/CA8A:	4C4DD2  	JMP $D24D      ; Color: User's

Fork: Handle weapon
C3/CA8D:	204DD2  	JSR $D24D      ; Color: User's
C3/CA90:	BF1450D8	LDA $D85014,X  ; Bat.Pwr
C3/CA94:	206305  	JSR $0563      ; Turn into text
C3/CA97:	A2A97B  	LDX #$7BA9     ; Text position
C3/CA9A:	204305  	JSR $0543      ; Draw 3 digits
C3/CA9D:	2052D2  	JSR $D252      ; Color: Blue
C3/CAA0:	A0ABD2  	LDY #$D2AB     ; Text pointer
C3/CAA3:	202603  	JSR $0326      ; Draw "Bat Pwr"
C3/CAA6:	204DD2  	JSR $D24D      ; Color: User's
C3/CAA9:	60      	RTS            ; For Owned, etc.

Compute buy order value
C3/CAAA:	7B      	TDC            ; Clear A
C3/CAAB:	A54B    	LDA $4B        ; Item slot
C3/CAAD:	0A      	ASL A          ; Double it
C3/CAAE:	AA      	TAX            ; Index it
C3/CAAF:	C220    	REP #$20       ; 16-bit A
C3/CAB1:	BF099F7E	LDA $7E9F09,X  ; Price asked
C3/CAB5:	85F1    	STA $F1        ; Memorize it
C3/CAB7:	E220    	SEP #$20       ; 8-bit A
C3/CAB9:	4CD8CA  	JMP $CAD8      ; Price x size

Compute sell order value
C3/CABC:	2026CF  	JSR $CF26      ; Selected item
C3/CABF:	20A28A  	JSR $8AA2      ; Compute index
C3/CAC2:	C220    	REP #$20       ; 16-bit A
C3/CAC4:	AD3421  	LDA $2134      ; Load it
C3/CAC7:	18      	CLC            ; Prepare ADC
C3/CAC8:	691C00  	ADC #$001C     ; Point to price
C3/CACB:	AA      	TAX            ; Index sum
C3/CACC:	BF0050D8	LDA $D85000,X  ; Base price
C3/CAD0:	4A      	LSR A          ; Halve it
C3/CAD1:	85F1    	STA $F1        ; Memorize it
C3/CAD3:	E220    	SEP #$20       ; 8-bit A
C3/CAD5:	4CD8CA  	JMP $CAD8      ; ...

Compute buy or sell order value
C3/CAD8:	A5F1    	LDA $F1        ; Item value LB
C3/CADA:	8D0242  	STA $4202      ; Set multiplicand
C3/CADD:	A528    	LDA $28        ; Item quantity
C3/CADF:	8D0342  	STA $4203      ; Set multiplier
C3/CAE2:	64EF    	STZ $EF        ; Product's B3: 0
C3/CAE4:	EA      	NOP
C3/CAE5:	EA      	NOP
C3/CAE6:	AE1642  	LDX $4216      ; Product
C3/CAE9:	86ED    	STX $ED        ; Memorize it
C3/CAEB:	A5F2    	LDA $F2        ; Item value HB
C3/CAED:	8D0242  	STA $4202      ; Set multiplicand
C3/CAF0:	A528    	LDA $28        ; Item quantity
C3/CAF2:	8D0342  	STA $4203      ; Set multiplier
C3/CAF5:	C221    	REP #$21       ; 16-bit A; C-
C3/CAF7:	A5EE    	LDA $EE        ; Old product HBs
C3/CAF9:	6D1642  	ADC $4216      ; Add new product
C3/CAFC:	85F2    	STA $F2        ; Set total HBs
C3/CAFE:	E220    	SEP #$20       ; 8-bit A
C3/CB00:	A5ED    	LDA $ED        ; Old product LB
C3/CB02:	85F1    	STA $F1        ; Set total LB
C3/CB04:	60      	RTS

Draw buy order size and value
C3/CB05:	2017CB  	JSR $CB17      ; Draw order size
C3/CB08:	20AACA  	JSR $CAAA      ; Get order value
C3/CB0B:	4C2ECB  	JMP $CB2E      ; Draw order value

Draw sell order size and value
C3/CB0E:	2017CB  	JSR $CB17      ; Draw order size
C3/CB11:	20BCCA  	JSR $CABC      ; Get order value
C3/CB14:	4C2ECB  	JMP $CB2E      ; Draw order value

Draw traded item's quantity and "GP" below
C3/CB17:	2052D2  	JSR $D252      ; Color: Blue
C3/CB1A:	A090D2  	LDY #$D290     ; Text pointer
C3/CB1D:	202603  	JSR $0326      ; Draw "GP"
C3/CB20:	204DD2  	JSR $D24D      ; Color: User's
C3/CB23:	A528    	LDA $28        ; Order size
C3/CB25:	206305  	JSR $0563      ; Turn into text
C3/CB28:	A22B7A  	LDX #$7A2B     ; Text position
C3/CB2B:	4C3905  	JMP $0539      ; Draw 2 digits

Draw order value (held in $F1-$F4)
C3/CB2E:	200506  	JSR $0605      ; Turn into text
C3/CB31:	A2A17A  	LDX #$7AA1     ; Text position
C3/CB34:	4C2F05  	JMP $052F      ; Draw 7 digits

Initialize cursor data and draw inventory for Sell menu
C3/CB37:	A901    	LDA #$01       ; 64x32 at $0000
C3/CB39:	8D0721  	STA $2107      ; Set BG1 map loc
C3/CB3C:	A976    	LDA #$76       ; Top row: 119th
C3/CB3E:	855C    	STA $5C        ; Set scroll limit
C3/CB40:	A90A    	LDA #$0A       ; Onscreen rows: 10
C3/CB42:	855A    	STA $5A        ; Set rows per page
C3/CB44:	A902    	LDA #$02       ; Onscreen cols: 2
C3/CB46:	855B    	STA $5B        ; Set cols per page
C3/CB48:	20A384  	JSR $84A3      ; Load navig data
C3/CB4B:	A44D    	LDY $4D        ; Cursor position
C3/CB4D:	844F    	STY $4F        ; Set as list loc
C3/CB4F:	A54A    	LDA $4A        ; Scroll position
C3/CB51:	18      	CLC            ; Prepare ADC
C3/CB52:	6550    	ADC $50        ; Add list V-Slot
C3/CB54:	8550    	STA $50        ; Set list V-Slot
C3/CB56:	20AC84  	JSR $84AC      ; Relocate cursor
C3/CB59:	20BC85  	JSR $85BC      ; Draw inventory
C3/CB5C:	20A409  	JSR $09A4      ; Create scrollbar
C3/CB5F:	C220    	REP #$20       ; 16-bit A
C3/CB61:	A9EA00  	LDA #$00EA     ; V-Speed: 0.914 px
C3/CB64:	9F4A357E	STA $7E354A,X  ; Set scrollbar's
C3/CB68:	A95800  	LDA #$0058     ; Y: 88
C3/CB6B:	9FCA347E	STA $7E34CA,X  ; Set scrollbar's
C3/CB6F:	E220    	SEP #$20       ; 8-bit A
C3/CB71:	60      	RTS

Window layout for Sell menu and main shop menu
C3/CB72:	8B580702	; 09x04 at $588B (Title)
C3/CB76:	9D581302	; 21x04 at $589D (Dialogue)
C3/CB7A:	8B590C02	; 14x04 at $598B (Options)
C3/CB7E:	A7590E02	; 16x04 at $59A7 (GP)
C3/CB82:	8B5A1C10	; 30x18 at $5A8B (Items)

Window layout for Buy menu
C3/CB86:	8B600702	; 09x04 at $608B (Title)
C3/CB8A:	9D601302	; 21x04 at $609D (Dialogue)
C3/CB8E:	8B61110C	; 19x14 at $618B (Items)
C3/CB92:	B161090C	; 11x14 at $61B1 (Amounts)
C3/CB96:	0B651C06	; 30x08 at $650B (Actors)

Window layout for shop order menus
C3/CB9A:	8B680702	; 09x04 at $688B (Title)
C3/CB9E:	9D681302	; 21x04 at $689D (Dialogue)
C3/CBA2:	8B691107	; 19x09 at $698B (Item)
C3/CBA6:	CB6B1C03	; 30x05 at $6BCB (Description)
C3/CBAA:	0B6D1C06	; 30x08 at $6D0B (Actors)
C3/CBAE:	B1690907	; 11x09 at $69B1 (Amounts)

Compile quantity owned of each item in Buy menu
C3/CBB2:	A2C99D  	LDX #$9DC9     ; 7E/9DC9
C3/CBB5:	8E8121  	STX $2181      ; Set WRAM LBs
C3/CBB8:	7B      	TDC            ; Clear A
C3/CBB9:	AA      	TAX            ; Menu slot: 1
C3/CBBA:	DA      	PHX            ; ...
C3/CBBB:	A400    	LDY $00        ; Stock slot: 1
C3/CBBD:	BF899D7E	LDA $7E9D89,X  ; Shop item
C3/CBC1:	D96918  	CMP $1869,Y    ; In stock slot?
C3/CBC4:	F00B    	BEQ $CBD1      ; Branch if so
C3/CBC6:	C8      	INY            ; Stock slot +1
C3/CBC7:	C00001  	CPY #$0100     ; Done all 256?
C3/CBCA:	D0F5    	BNE $CBC1      ; Loop if not
C3/CBCC:	9C8021  	STZ $2180      ; Quantity: 0
C3/CBCF:	8006    	BRA $CBD7      ; Skip 2 lines
C3/CBD1:	B96919  	LDA $1969,Y    ; Quantity owned
C3/CBD4:	8D8021  	STA $2180      ; Set shop item's
C3/CBD7:	FA      	PLX            ; ...
C3/CBD8:	E8      	INX            ; Menu slot +1
C3/CBD9:	E00800  	CPX #$0008     ; Done 8 items?
C3/CBDC:	D0DC    	BNE $CBBA      ; Loop if not
C3/CBDE:	60      	RTS

Load and draw quantity owned of item in Buy menu
C3/CBDF:	20EDCB  	JSR $CBED      ; Define $64
C3/CBE2:	A564    	LDA $64        ; Quantity owned
C3/CBE4:	206305  	JSR $0563      ; Turn into text
C3/CBE7:	A23F7B  	LDX #$7B3F     ; Text position
C3/CBEA:	4C3905  	JMP $0539      ; Draw 2 digits

Get quantity owned of item in Buy menu
C3/CBED:	7B      	TDC            ; Clear A
C3/CBEE:	A54B    	LDA $4B        ; Cursor slot
C3/CBF0:	AA      	TAX            ; Index it
C3/CBF1:	BFC99D7E	LDA $7E9DC9,X  ; Quantity owned
C3/CBF5:	8564    	STA $64        ; Set as current
C3/CBF7:	60      	RTS

Load and draw quantity owned of item in Sell menu
C3/CBF8:	7B      	TDC            ; Clear A
C3/CBF9:	A54B    	LDA $4B        ; List slot
C3/CBFB:	A8      	TAY            ; Index it
C3/CBFC:	B96919  	LDA $1969,Y    ; Item quantity
C3/CBFF:	8564    	STA $64        ; Memorize it
C3/CC01:	80DF    	BRA $CBE2      ; Draw quantity

Count and draw quantity worn of item in Buy menu
C3/CC03:	201DCF  	JSR $CF1D      ; Item in slot
C3/CC06:	4CC4CE  	JMP $CEC4      ; Draw quantity

Get sign found by actor for shop item
C3/CC09:	2024CC  	JSR $CC24      ; Actor can use?
C3/CC0C:	9014    	BCC $CC22      ; No sign if not
C3/CC0E:	7B      	TDC            ; Clear A
C3/CC0F:	A54B    	LDA $4B        ; Cursor slot
C3/CC11:	C220    	REP #$20       ; ...
C3/CC13:	0A      	ASL A          ; x2
C3/CC14:	0A      	ASL A          ; x4
C3/CC15:	0A      	ASL A          ; x8
C3/CC16:	0A      	ASL A          ; x16
C3/CC17:	E220    	SEP #$20       ; ...
C3/CC19:	18      	CLC            ; ...
C3/CC1A:	65E0    	ADC $E0        ; Add char slot
C3/CC1C:	AA      	TAX            ; Index sum
C3/CC1D:	BF8DAA7E	LDA $7EAA8D,X  ; Sign
C3/CC21:	60      	RTS            ; Exit
C3/CC22:	7B      	TDC            ; Sign: None
C3/CC23:	60      	RTS

Check whether actor can equip shop item
C3/CC24:	8B      	PHB            ; Save DB
C3/CC25:	A900    	LDA #$00       ; Zero A
C3/CC27:	48      	PHA            ; Put on stack
C3/CC28:	AB      	PLB            ; Set DB to 0
C3/CC29:	7B      	TDC            ; Clear A
C3/CC2A:	8DD811  	STA $11D8      ; No Merit Award
C3/CC2D:	7B      	TDC            ; ...
C3/CC2E:	A5E0    	LDA $E0        ; Char list slot
C3/CC30:	AA      	TAX            ; Index it
C3/CC31:	BF099E7E	LDA $7E9E09,X  ; Actor in slot
C3/CC35:	2037A4  	JSR $A437      ; Define compat
C3/CC38:	7B      	TDC            ; Clear A
C3/CC39:	A54B    	LDA $4B        ; Cursor slot
C3/CC3B:	AA      	TAX            ; Index it
C3/CC3C:	BF899D7E	LDA $7E9D89,X  ; Item in slot
C3/CC40:	20A28A  	JSR $8AA2      ; Compute index
C3/CC43:	AE3421  	LDX $2134      ; Load it
C3/CC46:	C220    	REP #$20       ; 16-bit A
C3/CC48:	BF0150D8	LDA $D85001,X  ; Compatibility
C3/CC4C:	25E7    	AND $E7        ; Actor can use?
C3/CC4E:	E220    	SEP #$20       ; 8-bit A
C3/CC50:	F003    	BEQ $CC55      ; Branch if not
C3/CC52:	AB      	PLB            ; Restore DB
C3/CC53:	38      	SEC            ; Mark success
C3/CC54:	60      	RTS            ; Exit
C3/CC55:	AB      	PLB            ; Restore DB
C3/CC56:	18      	CLC            ; Mark failure
C3/CC57:	60      	RTS

Build sign list for each item in Buy menu
C3/CC58:	20AACE  	JSR $CEAA      ; Clear sign list
C3/CC5B:	A08DAA  	LDY #$AA8D     ; 7E/AA8D
C3/CC5E:	84F3    	STY $F3        ; Save WRAM adr
C3/CC60:	7B      	TDC            ; ...
C3/CC61:	AA      	TAX            ; Item slot: 1
C3/CC62:	A4F3    	LDY $F3        ; WRAM address
C3/CC64:	8C8121  	STY $2181      ; Set WRAM LBs
C3/CC67:	DA      	PHX            ; Save item slot
C3/CC68:	BF899D7E	LDA $7E9D89,X  ; Item in slot
C3/CC6C:	859F    	STA $9F        ; Memorize it
C3/CC6E:	20A28A  	JSR $8AA2      ; Compute index
C3/CC71:	AE3421  	LDX $2134      ; Load it
C3/CC74:	BF1450D8	LDA $D85014,X  ; Item's power
C3/CC78:	859E    	STA $9E        ; Memorize it
C3/CC7A:	BF0050D8	LDA $D85000,X  ; Properties
C3/CC7E:	2907    	AND #$07       ; Get class
C3/CC80:	C901    	CMP #$01       ; Weapon?
C3/CC82:	F07C    	BEQ $CD00      ; Branch if so
C3/CC84:	C902    	CMP #$02       ; Armor?
C3/CC86:	F018    	BEQ $CCA0      ; Branch if so
C3/CC88:	C903    	CMP #$03       ; Shield?
C3/CC8A:	F00E    	BEQ $CC9A      ; Branch if so
C3/CC8C:	C904    	CMP #$04       ; Helmet?
C3/CC8E:	F00D    	BEQ $CC9D      ; Branch if so
C3/CC90:	C905    	CMP #$05       ; Relic?
C3/CC92:	F003    	BEQ $CC97      ; Branch if so
C3/CC94:	4C65CE  	JMP $CE65      ; Handle non-gear
C3/CC97:	4C73CE  	JMP $CE73      ; Handle relic
C3/CC9A:	4C90CD  	JMP $CD90      ; Handle shield
C3/CC9D:	4C18CE  	JMP $CE18      ; Handle helmet

Fork: Build sign list for armor
C3/CCA0:	7B      	TDC            ; Clear A
C3/CCA1:	AA      	TAX            ; 1st: Terra
C3/CCA2:	DA      	PHX            ; Save actor index
C3/CCA3:	C220    	REP #$20       ; 16-bit A
C3/CCA5:	ADDC1E  	LDA $1EDC      ; Shown actors
C3/CCA8:	3F56A4C3	AND $C3A456,X  ; Has our actor?
C3/CCAC:	F034    	BEQ $CCE2      ; Skip if not
C3/CCAE:	BFDB70C3	LDA $C370DB,X  ; Actor's address
C3/CCB2:	A8      	TAY            ; Index it
C3/CCB3:	E220    	SEP #$20       ; 8-bit A
C3/CCB5:	7B      	TDC            ; ...
C3/CCB6:	B92200  	LDA $0022,Y    ; Actor's armor
C3/CCB9:	C59F    	CMP $9F        ; In shop slot?
C3/CCBB:	F01C    	BEQ $CCD9      ; Use "E" if so
C3/CCBD:	C9FF    	CMP #$FF       ; None?
C3/CCBF:	F010    	BEQ $CCD1      ; Use "^" if so
C3/CCC1:	20A28A  	JSR $8AA2      ; Compute index
C3/CCC4:	AE3421  	LDX $2134      ; Load it
C3/CCC7:	BF1450D8	LDA $D85014,X  ; Item's defense
C3/CCCB:	C59E    	CMP $9E        ; Matches shop's?
C3/CCCD:	F00E    	BEQ $CCDD      ; Use "=" if so
C3/CCCF:	B004    	BCS $CCD5      ; Use "v" if above
C3/CCD1:	A902    	LDA #$02       ; Sign: "^"
C3/CCD3:	800A    	BRA $CCDF      ; Add to list

Subfork: Use "v" sign for armor
C3/CCD5:	A903    	LDA #$03       ; Sign: "v"
C3/CCD7:	8006    	BRA $CCDF      ; Add to list

Subfork: Use "E" sign for armor
C3/CCD9:	A901    	LDA #$01       ; Sign: "E"
C3/CCDB:	8002    	BRA $CCDF      ; Skip a line

Subfork: Use "=" sign for armor
C3/CCDD:	A904    	LDA #$04       ; Sign: "="
C3/CCDF:	8D8021  	STA $2180      ; Add to list
C3/CCE2:	FA      	PLX            ; Actor index
C3/CCE3:	E8      	INX            ; Index +1
C3/CCE4:	E8      	INX            ; Index +1
C3/CCE5:	E02000  	CPX #$0020     ; Done 16 chars?
C3/CCE8:	D0B8    	BNE $CCA2      ; Loop if not

Fork: Handle next item
C3/CCEA:	C221    	REP #$21       ; 16-bit A; C-
C3/CCEC:	A5F3    	LDA $F3        ; WRAM address
C3/CCEE:	691000  	ADC #$0010     ; Reach next item
C3/CCF1:	85F3    	STA $F3        ; Save changes
C3/CCF3:	E220    	SEP #$20       ; 8-bit A
C3/CCF5:	FA      	PLX            ; Item slot
C3/CCF6:	E8      	INX            ; Item slot +1
C3/CCF7:	E00800  	CPX #$0008     ; Done 8 items?
C3/CCFA:	D001    	BNE $CCFD      ; Loop if not
C3/CCFC:	60      	RTS            ; Exit
C3/CCFD:	4C62CC  	JMP $CC62      ; Do next item

Fork: Build sign list for weapon
C3/CD00:	7B      	TDC            ; Clear A
C3/CD01:	AA      	TAX            ; 1st: Terra
C3/CD02:	DA      	PHX            ; Save actor index
C3/CD03:	C220    	REP #$20       ; 16-bit A
C3/CD05:	ADDC1E  	LDA $1EDC      ; Shown actors
C3/CD08:	3F56A4C3	AND $C3A456,X  ; Has our actor?
C3/CD0C:	F074    	BEQ $CD82      ; Skip if not
C3/CD0E:	BFDB70C3	LDA $C370DB,X  ; Actor's address
C3/CD12:	A8      	TAY            ; Index it
C3/CD13:	E220    	SEP #$20       ; 8-bit A

Subfork: Check if holding shop item
C3/CD15:	B91F00  	LDA $001F,Y    ; R-Hand item
C3/CD18:	C59F    	CMP $9F        ; In shop slot?
C3/CD1A:	F05D    	BEQ $CD79      ; Use "E" if so
C3/CD1C:	B92000  	LDA $0020,Y    ; L-Hand item
C3/CD1F:	C59F    	CMP $9F        ; In shop slot?
C3/CD21:	F056    	BEQ $CD79      ; Use "E" if so

Subfork: Check if weapon in R-Hand
C3/CD23:	7B      	TDC            ; ...
C3/CD24:	B91F00  	LDA $001F,Y    ; R-Hand item
C3/CD27:	C9FF    	CMP #$FF       ; None?
C3/CD29:	F010    	BEQ $CD3B      ; Branch if so
C3/CD2B:	20A28A  	JSR $8AA2      ; Compute index
C3/CD2E:	AE3421  	LDX $2134      ; Load it
C3/CD31:	BF0050D8	LDA $D85000,X  ; Properties
C3/CD35:	2907    	AND #$07       ; Get class
C3/CD37:	C901    	CMP #$01       ; Weapon?
C3/CD39:	F01E    	BEQ $CD59      ; Branch if so

Subfork: No weapon in R-Hand, check L-Hand
C3/CD3B:	7B      	TDC            ; ...
C3/CD3C:	B92000  	LDA $0020,Y    ; L-Hand item
C3/CD3F:	C9FF    	CMP #$FF       ; None?
C3/CD41:	F02E    	BEQ $CD71      ; Use "^" if so
C3/CD43:	20A28A  	JSR $8AA2      ; Compute index
C3/CD46:	AE3421  	LDX $2134      ; Load it
C3/CD49:	BF0050D8	LDA $D85000,X  ; Properties
C3/CD4D:	2907    	AND #$07       ; Get class
C3/CD4F:	C901    	CMP #$01       ; Weapon?
C3/CD51:	D006    	BNE $CD59      ; Branch if not
C3/CD53:	7B      	TDC            ; ...
C3/CD54:	B92000  	LDA $0020,Y    ; L-Hand item
C3/CD57:	8004    	BRA $CD5D      ; Compare power

Subfork: Compare weapons' power
C3/CD59:	7B      	TDC            ; ...
C3/CD5A:	B91F00  	LDA $001F,Y    ; R-Hand item
C3/CD5D:	C9FF    	CMP #$FF       ; None?
C3/CD5F:	F010    	BEQ $CD71      ; Use "^" if so
C3/CD61:	20A28A  	JSR $8AA2      ; Compute index
C3/CD64:	AE3421  	LDX $2134      ; Load it
C3/CD67:	BF1450D8	LDA $D85014,X  ; Item's Bat.Pwr
C3/CD6B:	C59E    	CMP $9E        ; Matches shop's?
C3/CD6D:	F00E    	BEQ $CD7D      ; Use "=" if so
C3/CD6F:	B004    	BCS $CD75      ; Use "v" if above
C3/CD71:	A902    	LDA #$02       ; Sign: "^"
C3/CD73:	800A    	BRA $CD7F      ; Add to list

Subfork: Use "v" sign for weapon
C3/CD75:	A903    	LDA #$03       ; Sign: "v"
C3/CD77:	8006    	BRA $CD7F      ; Add to list

Subfork: Use "E" sign for weapon
C3/CD79:	A901    	LDA #$01       ; Sign: "E"
C3/CD7B:	8002    	BRA $CD7F      ; Skip a line

Subfork: Use "=" sign for weapon
C3/CD7D:	A904    	LDA #$04       ; Sign: "="
C3/CD7F:	8D8021  	STA $2180      ; Add to list
C3/CD82:	FA      	PLX            ; Actor index
C3/CD83:	E8      	INX            ; Index +1
C3/CD84:	E8      	INX            ; Index +1
C3/CD85:	E02000  	CPX #$0020     ; Done 16 chars?
C3/CD88:	D003    	BNE $CD8D      ; Loop if not
C3/CD8A:	4CEACC  	JMP $CCEA      ; Do next item
C3/CD8D:	4C02CD  	JMP $CD02      ; Do next actor

Fork: Build sign list for shield
C3/CD90:	7B      	TDC            ; Clear A
C3/CD91:	AA      	TAX            ; 1st: Terra
C3/CD92:	DA      	PHX            ; Save actor index
C3/CD93:	C220    	REP #$20       ; 16-bit A
C3/CD95:	ADDC1E  	LDA $1EDC      ; Shown actors
C3/CD98:	3F56A4C3	AND $C3A456,X  ; Has our actor?
C3/CD9C:	F06C    	BEQ $CE0A      ; Skip if not
C3/CD9E:	BFDB70C3	LDA $C370DB,X  ; Actor's address
C3/CDA2:	A8      	TAY            ; Index it
C3/CDA3:	E220    	SEP #$20       ; 8-bit A

Subfork: Check if holding shop item
C3/CDA5:	B91F00  	LDA $001F,Y    ; R-Hand item
C3/CDA8:	C59F    	CMP $9F        ; In shop slot?
C3/CDAA:	F055    	BEQ $CE01      ; Use "E" if so
C3/CDAC:	B92000  	LDA $0020,Y    ; L-Hand item
C3/CDAF:	C59F    	CMP $9F        ; In shop slot?
C3/CDB1:	F04E    	BEQ $CE01      ; Use "E" if so

Subfork: Check if holding a shield
C3/CDB3:	7B      	TDC            ; ...
C3/CDB4:	B92000  	LDA $0020,Y    ; L-Hand item...
C3/CDB7:	20A28A  	JSR $8AA2      ; Compute index
C3/CDBA:	AE3421  	LDX $2134      ; Load it
C3/CDBD:	BF0050D8	LDA $D85000,X  ; Properties
C3/CDC1:	2907    	AND #$07       ; Get class
C3/CDC3:	C903    	CMP #$03       ; Shield?
C3/CDC5:	F01A    	BEQ $CDE1      ; Branch if so
C3/CDC7:	7B      	TDC            ; ...
C3/CDC8:	B91F00  	LDA $001F,Y    ; R-Hand item
C3/CDCB:	20A28A  	JSR $8AA2      ; Compute index
C3/CDCE:	AE3421  	LDX $2134      ; Load it
C3/CDD1:	BF0050D8	LDA $D85000,X  ; Properties
C3/CDD5:	2907    	AND #$07       ; Get class
C3/CDD7:	C903    	CMP #$03       ; Shield?
C3/CDD9:	D01E    	BNE $CDF9      ; Use "^" if not
C3/CDDB:	7B      	TDC            ; ...
C3/CDDC:	B91F00  	LDA $001F,Y    ; R-Hand item
C3/CDDF:	8004    	BRA $CDE5      ; Compare defense

Subfork: Compare shields' defense
C3/CDE1:	7B      	TDC            ; ...
C3/CDE2:	B92000  	LDA $0020,Y    ; L-Hand item...
C3/CDE5:	C9FF    	CMP #$FF       ; None?...
C3/CDE7:	F010    	BEQ $CDF9      ; Use "^" if so
C3/CDE9:	20A28A  	JSR $8AA2      ; Compute index
C3/CDEC:	AE3421  	LDX $2134      ; Load it
C3/CDEF:	BF1450D8	LDA $D85014,X  ; Item's defense
C3/CDF3:	C59E    	CMP $9E        ; Matches shop's?
C3/CDF5:	F00E    	BEQ $CE05      ; Use "=" if so
C3/CDF7:	B004    	BCS $CDFD      ; Use "v" if above
C3/CDF9:	A902    	LDA #$02       ; Sign: "^"
C3/CDFB:	800A    	BRA $CE07      ; Add to list

Subfork: Use "v" sign for shield
C3/CDFD:	A903    	LDA #$03       ; Sign: "v"
C3/CDFF:	8006    	BRA $CE07      ; Add to list

Subfork: Use "E" sign for shield
C3/CE01:	A901    	LDA #$01       ; Sign: "E"
C3/CE03:	8002    	BRA $CE07      ; Skip a line

Subfork: Use "=" sign for shield
C3/CE05:	A904    	LDA #$04       ; Sign: "="
C3/CE07:	8D8021  	STA $2180      ; Add to list
C3/CE0A:	FA      	PLX            ; Actor index
C3/CE0B:	E8      	INX            ; Index +1
C3/CE0C:	E8      	INX            ; Index +1
C3/CE0D:	E02000  	CPX #$0020     ; Done 16 chars?
C3/CE10:	D003    	BNE $CE15      ; Loop if not
C3/CE12:	4CEACC  	JMP $CCEA      ; Do next item
C3/CE15:	4C92CD  	JMP $CD92      ; Do next actor

Fork: Build sign list for helmet
C3/CE18:	7B      	TDC            ; Clear A
C3/CE19:	AA      	TAX            ; 1st: Terra
C3/CE1A:	DA      	PHX            ; Save char index
C3/CE1B:	C220    	REP #$20       ; 16-bit A
C3/CE1D:	ADDC1E  	LDA $1EDC      ; Shown actors
C3/CE20:	3F56A4C3	AND $C3A456,X  ; Has our actor?
C3/CE24:	F034    	BEQ $CE5A      ; Skip if not
C3/CE26:	BFDB70C3	LDA $C370DB,X  ; Actor's address
C3/CE2A:	A8      	TAY            ; Index it
C3/CE2B:	E220    	SEP #$20       ; 8-bit A
C3/CE2D:	7B      	TDC            ; ...
C3/CE2E:	B92100  	LDA $0021,Y    ; Actor's helmet
C3/CE31:	C59F    	CMP $9F        ; In shop slot?
C3/CE33:	F01C    	BEQ $CE51      ; Use "E" if so
C3/CE35:	C9FF    	CMP #$FF       ; None?
C3/CE37:	F010    	BEQ $CE49      ; Use "^" if so
C3/CE39:	20A28A  	JSR $8AA2      ; Compute index
C3/CE3C:	AE3421  	LDX $2134      ; Load it
C3/CE3F:	BF1450D8	LDA $D85014,X  ; Item's defense
C3/CE43:	C59E    	CMP $9E        ; Matches shop's?
C3/CE45:	F00E    	BEQ $CE55      ; Use "=" if so
C3/CE47:	B004    	BCS $CE4D      ; Use "v" if above
C3/CE49:	A902    	LDA #$02       ; Sign: "^"
C3/CE4B:	800A    	BRA $CE57      ; Add to list

Subfork: Use "v" sign for helmet
C3/CE4D:	A903    	LDA #$03       ; Sign: "v"
C3/CE4F:	8006    	BRA $CE57      ; Add to list

Subfork: Use "E" sign for helmet
C3/CE51:	A901    	LDA #$01       ; Sign: "E"
C3/CE53:	8002    	BRA $CE57      ; Skip a line

Subfork: Use "=" sign for helmet
C3/CE55:	A904    	LDA #$04       ; Sign: "="
C3/CE57:	8D8021  	STA $2180      ; Add to list
C3/CE5A:	FA      	PLX            ; Actor index
C3/CE5B:	E8      	INX            ; Index +1
C3/CE5C:	E8      	INX            ; Index +1
C3/CE5D:	E02000  	CPX #$0020     ; Done 16 chars?
C3/CE60:	D0B8    	BNE $CE1A      ; Loop if not
C3/CE62:	4CEACC  	JMP $CCEA      ; Do next item

Fork: Clear sign list for consumable or tool
C3/CE65:	7B      	TDC            ; Sign: None
C3/CE66:	AA      	TAX            ; Actors done: 0
C3/CE67:	8D8021  	STA $2180      ; Add sign to list
C3/CE6A:	E8      	INX            ; Actors done +1
C3/CE6B:	E01000  	CPX #$0010     ; Done all 16?
C3/CE6E:	D0F7    	BNE $CE67      ; Loop if not
C3/CE70:	4CEACC  	JMP $CCEA      ; Do next item

Fork: Build sign list for relic
C3/CE73:	7B      	TDC            ; Clear A
C3/CE74:	AA      	TAX            ; 1st: Terra
C3/CE75:	DA      	PHX            ; Save char index
C3/CE76:	C220    	REP #$20       ; 16-bit A
C3/CE78:	ADDC1E  	LDA $1EDC      ; Shown actors
C3/CE7B:	3F56A4C3	AND $C3A456,X  ; Has our actor?
C3/CE7F:	F01E    	BEQ $CE9F      ; Skip if not
C3/CE81:	BFDB70C3	LDA $C370DB,X  ; Actor's address
C3/CE85:	A8      	TAY            ; Index it
C3/CE86:	E220    	SEP #$20       ; 8-bit A
C3/CE88:	7B      	TDC            ; ...
C3/CE89:	B92300  	LDA $0023,Y    ; Actor relic 1
C3/CE8C:	C59F    	CMP $9F        ; In shop slot?
C3/CE8E:	F00A    	BEQ $CE9A      ; Use "E" if so
C3/CE90:	B92400  	LDA $0024,Y    ; Actor relic 2
C3/CE93:	C59F    	CMP $9F        ; In shop slot?
C3/CE95:	F003    	BEQ $CE9A      ; Use "E" if so
C3/CE97:	7B      	TDC            ; Sign: None
C3/CE98:	8002    	BRA $CE9C      ; Skip a line
C3/CE9A:	A901    	LDA #$01       ; Sign: "E"
C3/CE9C:	8D8021  	STA $2180      ; Add to list
C3/CE9F:	FA      	PLX            ; Actor index
C3/CEA0:	E8      	INX            ; Index +1
C3/CEA1:	E8      	INX            ; Index +1
C3/CEA2:	E02000  	CPX #$0020     ; Done 16 chars?
C3/CEA5:	D0CE    	BNE $CE75      ; Loop if not
C3/CEA7:	4CEACC  	JMP $CCEA      ; Do next item

Clear sign list for every item in Buy menu (16 actors per item)
C3/CEAA:	8B      	PHB            ; Save DB
C3/CEAB:	A97E    	LDA #$7E       ; Bank: 7E
C3/CEAD:	48      	PHA            ; Put on stack
C3/CEAE:	AB      	PLB            ; Set DB to 7E
C3/CEAF:	7B      	TDC            ; Clear A
C3/CEB0:	AA      	TAX            ; Index: 0
C3/CEB1:	C220    	REP #$20       ; 16-bit A
C3/CEB3:	9E8DAA  	STZ $AA8D,X    ; Clear 2 signs
C3/CEB6:	E8      	INX            ; Index +1
C3/CEB7:	E8      	INX            ; Index +1
C3/CEB8:	E08000  	CPX #$0080     ; Done 8 items?
C3/CEBB:	D0F6    	BNE $CEB3      ; Loop if not
C3/CEBD:	E220    	SEP #$20       ; 8-bit A
C3/CEBF:	AB      	PLB            ; Restore DB
C3/CEC0:	60      	RTS

Count and draw quantity worn of item in Sell menu
C3/CEC1:	2026CF  	JSR $CF26      ; Selected item
C3/CEC4:	85E0    	STA $E0        ; Memorize it
C3/CEC6:	6465    	STZ $65        ; Quantity worn: 0
C3/CEC8:	A21F16  	LDX #$161F     ; 00/161F
C3/CECB:	86E7    	STX $E7        ; Set address LBs
C3/CECD:	A900    	LDA #$00       ; Bank: 00
C3/CECF:	85E9    	STA $E9        ; Set address HB
C3/CED1:	A600    	LDX $00        ; 1st: Terra
C3/CED3:	DA      	PHX            ; Save actor slot
C3/CED4:	C220    	REP #$20       ; 16-bit A
C3/CED6:	8A      	TXA            ; Get actor
C3/CED7:	0A      	ASL A          ; Double it
C3/CED8:	AA      	TAX            ; Index it
C3/CED9:	ADDC1E  	LDA $1EDC      ; Eligible actors
C3/CEDC:	3F56A4C3	AND $C3A456,X  ; Has our actor?
C3/CEE0:	F01E    	BEQ $CF00      ; Skip if not
C3/CEE2:	BFDB70C3	LDA $C370DB,X  ; Actor's address
C3/CEE6:	AA      	TAX            ; Index it
C3/CEE7:	E220    	SEP #$20       ; 8-bit A
C3/CEE9:	BD0000  	LDA $0000,X    ; Actor
C3/CEEC:	C90E    	CMP #$0E       ; Guest?
C3/CEEE:	B010    	BCS $CF00      ; Skip if so
C3/CEF0:	A400    	LDY $00        ; 1st: R-Hand
C3/CEF2:	B7E7    	LDA [$E7],Y    ; Equipped item
C3/CEF4:	C5E0    	CMP $E0        ; Matches shop's?
C3/CEF6:	D002    	BNE $CEFA      ; Branch if not
C3/CEF8:	E665    	INC $65        ; Quantity worn +1
C3/CEFA:	C8      	INY            ; Gear slot +1
C3/CEFB:	C00600  	CPY #$0006     ; Done all 6?
C3/CEFE:	D0F2    	BNE $CEF2      ; Loop if not
C3/CF00:	C221    	REP #$21       ; 16-bit A; C-
C3/CF02:	A92500  	LDA #$0025     ; Actor data size
C3/CF05:	65E7    	ADC $E7        ; Add SRAM pointer
C3/CF07:	85E7    	STA $E7        ; Set SRAM pointer
C3/CF09:	E220    	SEP #$20       ; 8-bit A
C3/CF0B:	FA      	PLX            ; Actor slot
C3/CF0C:	E8      	INX            ; Point to next
C3/CF0D:	E01000  	CPX #$0010     ; Done all 16?
C3/CF10:	D0C1    	BNE $CED3      ; Loop if not
C3/CF12:	A565    	LDA $65        ; Quantity worn
C3/CF14:	206305  	JSR $0563      ; Turn into text
C3/CF17:	A23F7C  	LDX #$7C3F     ; Text position
C3/CF1A:	4C3905  	JMP $0539      ; Draw 2 digits

Get item by cursor in Buy menu
C3/CF1D:	7B      	TDC            ; Clear A
C3/CF1E:	A54B    	LDA $4B        ; Cursor slot
C3/CF20:	AA      	TAX            ; Index it
C3/CF21:	BF899D7E	LDA $7E9D89,X  ; Item in slot
C3/CF25:	60      	RTS

Get item selected in Sell menu
C3/CF26:	7B      	TDC            ; Clear A
C3/CF27:	A54B    	LDA $4B        ; List slot
C3/CF29:	A8      	TAY            ; Index it
C3/CF2A:	B96918  	LDA $1869,Y    ; Item in slot
C3/CF2D:	60      	RTS

Draw shop title and define shop index
C3/CF2E:	2052D2  	JSR $D252      ; Color: Blue
C3/CF31:	AD1242  	LDA $4212      ; PPU status
C3/CF34:	2940    	AND #$40       ; H-Blank?
C3/CF36:	F0F9    	BEQ $CF31      ; Loop if not
C3/CF38:	AD0102  	LDA $0201      ; Shop number
C3/CF3B:	8D1B21  	STA $211B      ; Set matrix A LB
C3/CF3E:	9C1B21  	STZ $211B      ; Clear HB
C3/CF41:	A909    	LDA #$09       ; Shop data size
C3/CF43:	8D1C21  	STA $211C      ; Set matrix B
C3/CF46:	8D1C21  	STA $211C      ; ...
C3/CF49:	AE3421  	LDX $2134      ; Index product
C3/CF4C:	8667    	STX $67        ; Set shop index
C3/CF4E:	BFC07AC4	LDA $C47AC0,X  ; Shop flags
C3/CF52:	2907    	AND #$07       ; Title number
C3/CF54:	0A      	ASL A          ; Double it
C3/CF55:	AA      	TAX            ; Index it
C3/CF56:	C220    	REP #$20       ; 16-bit A
C3/CF58:	BF67CFC3	LDA $C3CF67,X  ; Text pointer
C3/CF5C:	85E7    	STA $E7        ; Set src LBs
C3/CF5E:	E220    	SEP #$20       ; 8-bit A
C3/CF60:	A9C3    	LDA #$C3       ; Bank: C3
C3/CF62:	85E9    	STA $E9        ; Set src HB
C3/CF64:	4C2C03  	JMP $032C      ; Draw title

Pointers to shop titles
C3/CF67:	0000    	; Bogus...
C3/CF69:	57D2    	; Weapon
C3/CF6B:	5DD2    	; Armor
C3/CF6D:	64D2    	; Item
C3/CF6F:	6BD2    	; Relics
C3/CF71:	75D2    	; Vendor

Set to condense BG3 text in shop menu
C3/CF73:	A902    	LDA #$02       ; 1Rx2B to PPU
C3/CF75:	8D5043  	STA $4350      ; Set DMA mode
C3/CF78:	A912    	LDA #$12       ; $2112
C3/CF7A:	8D5143  	STA $4351      ; To BG3 V-Scroll
C3/CF7D:	A092CF  	LDY #$CF92     ; C3/CF92
C3/CF80:	8C5243  	STY $4352      ; Set src LBs
C3/CF83:	A9C3    	LDA #$C3       ; Bank: C3
C3/CF85:	8D5443  	STA $4354      ; Set src HB
C3/CF88:	A9C3    	LDA #$C3       ; ...
C3/CF8A:	8D5743  	STA $4357      ; Set indir HB
C3/CF8D:	A920    	LDA #$20       ; Channel: 5
C3/CF8F:	0443    	TSB $43        ; Queue HDMA-5
C3/CF91:	60      	RTS

BG3 text shifting table for shop
C3/CF92:	2F 0400 	; Title
C3/CF95:	0C 0400 	; Item 1
C3/CF98:	0C 0800 	; Item 2
C3/CF9B:	0C 0C00 	; Item 3
C3/CF9E:	0C 1000 	; Item 4
C3/CFA1:	0C 1400 	; Item 5
C3/CFA4:	0C 1800 	; Item 6
C3/CFA7:	0C 1C00 	; Item 7
C3/CFAA:	0C 2000 	; Item 8
C3/CFAD:	0C 2400 	; Nothing
C3/CFB0:	0C 2800 	; Nothing
C3/CFB3:	0C 2C00 	; Nothing
C3/CFB6:	0C 3000 	; Nothing
C3/CFB9:	0C 3400 	; Nothing
C3/CFBC:	0C 3800 	; Nothing
C3/CFBF:	0C 3C00 	; Nothing
C3/CFC2:	00      	; End

Load item's name
C3/CFC3:	48      	PHA            ; Save item
C3/CFC4:	A28B9E  	LDX #$9E8B     ; 7E/9E8B
C3/CFC7:	8E8121  	STX $2181      ; Set WRAM LBs
C3/CFCA:	AD1242  	LDA $4212      ; PPU status
C3/CFCD:	2940    	AND #$40       ; H-Blank?
C3/CFCF:	F0F9    	BEQ $CFCA      ; Loop if not
C3/CFD1:	68      	PLA            ; Item
C3/CFD2:	8D1B21  	STA $211B      ; Set matrix A LB
C3/CFD5:	9C1B21  	STZ $211B      ; Clear HB
C3/CFD8:	A909    	LDA #$09       ; Name data size
C3/CFDA:	8D1C21  	STA $211C      ; Set matrix B
C3/CFDD:	8D1C21  	STA $211C      ; ...
C3/CFE0:	AE3421  	LDX $2134      ; Index product
C3/CFE3:	A00900  	LDY #$0009     ; Letters: 9
C3/CFE6:	BF00F7E6	LDA $E6F700,X  ; Letter
C3/CFEA:	8D8021  	STA $2180      ; Add to string
C3/CFED:	E8      	INX            ; Point to next
C3/CFEE:	88      	DEY            ; One less left
C3/CFEF:	D0F5    	BNE $CFE6      ; Loop till last
C3/CFF1:	9C8021  	STZ $2180      ; End string
C3/CFF4:	60      	RTS

Compile and create actors for Buy menu
C3/CFF5:	2064D0  	JSR $D064      ; Compile actors
C3/CFF8:	2027D1  	JSR $D127      ; Mark members
C3/CFFB:	7B      	TDC            ; Clear A
C3/CFFC:	AA      	TAX            ; List slot: 1
C3/CFFD:	BF099E7E	LDA $7E9E09,X  ; Actor in slot
C3/D001:	3044    	BMI $D047      ; Exit if none
C3/D003:	DA      	PHX            ; Save slot
C3/D004:	48      	PHA            ; Save actor
C3/D005:	A902    	LDA #$02       ; Min slot: 16
C3/D007:	A09CD0  	LDY #$D09C     ; C3/D09C
C3/D00A:	20DE11  	JSR $11DE      ; Queue OAM fn
C3/D00D:	9B      	TXY            ; Queue slot
C3/D00E:	7B      	TDC            ; Clear A
C3/D00F:	68      	PLA            ; Actor
C3/D010:	9FC9357E	STA $7E35C9,X  ; Link to OBJ
C3/D014:	0A      	ASL A          ; Double it
C3/D015:	AA      	TAX            ; Index it
C3/D016:	A97E    	LDA #$7E       ; Bank: 7E
C3/D018:	48      	PHA            ; Put on stack
C3/D019:	AB      	PLB            ; Set DB to 7E
C3/D01A:	C220    	REP #$20       ; 16-bit A
C3/D01C:	BFA1E9D8	LDA $D8E9A1,X  ; Anim table ptr
C3/D020:	99C932  	STA $32C9,Y    ; Set sprite's
C3/D023:	E220    	SEP #$20       ; 8-bit A
C3/D025:	FA      	PLX            ; List slot
C3/D026:	BF48D0C3	LDA $C3D048,X  ; X position
C3/D02A:	99CA33  	STA $33CA,Y    ; Set actor's
C3/D02D:	BF56D0C3	LDA $C3D056,X  ; Y position
C3/D031:	994A34  	STA $344A,Y    ; Set actor's
C3/D034:	7B      	TDC            ; ...
C3/D035:	99CB33  	STA $33CB,Y    ; No use...
C3/D038:	994B34  	STA $344B,Y    ; No use...
C3/D03B:	A9D8    	LDA #$D8       ; Bank: D8
C3/D03D:	99CA35  	STA $35CA,Y    ; Set ptr HB
C3/D040:	A900    	LDA #$00       ; Zero A
C3/D042:	48      	PHA            ; Put on stack
C3/D043:	AB      	PLB            ; Set DB to 0
C3/D044:	E8      	INX            ; List slot +1
C3/D045:	80B6    	BRA $CFFD      ; Do next char
C3/D047:	60      	RTS

X positions for shop actors
C3/D048:	18      	; Actor 1
C3/D049:	38      	; Actor 2
C3/D04A:	58      	; Actor 3
C3/D04B:	78      	; Actor 4
C3/D04C:	98      	; Actor 5
C3/D04D:	B8      	; Actor 6
C3/D04E:	D8      	; Actor 7
C3/D04F:	18      	; Actor 8
C3/D050:	38      	; Actor 9
C3/D051:	58      	; Actor 10
C3/D052:	78      	; Actor 11
C3/D053:	98      	; Actor 12
C3/D054:	B8      	; Actor 13
C3/D055:	D8      	; Actor 14

Y positions for shop actors
C3/D056:	9C      	; Actor 1
C3/D057:	9C      	; Actor 2
C3/D058:	9C      	; Actor 3
C3/D059:	9C      	; Actor 4
C3/D05A:	9C      	; Actor 5
C3/D05B:	9C      	; Actor 6
C3/D05C:	9C      	; Actor 7
C3/D05D:	B8      	; Actor 8
C3/D05E:	B8      	; Actor 9
C3/D05F:	B8      	; Actor 10
C3/D060:	B8      	; Actor 11
C3/D061:	B8      	; Actor 12
C3/D062:	B8      	; Actor 13
C3/D063:	B8      	; Actor 14

Compile actors for Buy menu
C3/D064:	A2099E  	LDX #$9E09     ; 7E/9E09
C3/D067:	8E8121  	STX $2181      ; Set WRAM LBs
C3/D06A:	A600    	LDX $00        ; 1st: Terra
C3/D06C:	DA      	PHX            ; Save char slot
C3/D06D:	C220    	REP #$20       ; 16-bit A
C3/D06F:	8A      	TXA            ; Actor slot
C3/D070:	0A      	ASL A          ; Double it
C3/D071:	AA      	TAX            ; Index it
C3/D072:	ADDC1E  	LDA $1EDC      ; Showable chars
C3/D075:	3F56A4C3	AND $C3A456,X  ; Has our actor?
C3/D079:	F012    	BEQ $D08D      ; Skip if not
C3/D07B:	BFDB70C3	LDA $C370DB,X  ; Actor's address
C3/D07F:	A8      	TAY            ; Index it
C3/D080:	7B      	TDC            ; Clear A
C3/D081:	E220    	SEP #$20       ; 8-bit A
C3/D083:	B90000  	LDA $0000,Y    ; Actor
C3/D086:	C90E    	CMP #$0E       ; Guest?
C3/D088:	B003    	BCS $D08D      ; Skip if so
C3/D08A:	8D8021  	STA $2180      ; Add to list
C3/D08D:	E220    	SEP #$20       ; 8-bit A
C3/D08F:	FA      	PLX            ; Actor slot
C3/D090:	E8      	INX            ; Slot +1
C3/D091:	E01000  	CPX #$0010     ; Done all 16?
C3/D094:	D0D6    	BNE $D06C      ; Loop if not
C3/D096:	A9FF    	LDA #$FF       ; Terminator
C3/D098:	8D8021  	STA $2180      ; End list
C3/D09B:	60      	RTS

Update shop actor
C3/D09C:	AA      	TAX            ; Index mode
C3/D09D:	7CA0D0  	JMP ($D0A0,X)  ; Handle mode

Jump table for the above
C3/D0A0:	A4D0    	; Initialize data
C3/D0A2:	C5D0    	; Sustain sprite

Mode 0: Initialize data
C3/D0A4:	A901    	LDA #$01       ; Hide actors: N
C3/D0A6:	0447    	TSB $47        ; Set menu flag
C3/D0A8:	A62D    	LDX $2D        ; Queue index
C3/D0AA:	FE4936  	INC $3649,X    ; Mode +1
C3/D0AD:	C220    	REP #$20       ; 16-bit A
C3/D0AF:	BDC932  	LDA $32C9,X    ; Anim table ptr
C3/D0B2:	9DCA34  	STA $34CA,X    ; Save original
C3/D0B5:	E220    	SEP #$20       ; 8-bit A
C3/D0B7:	207112  	JSR $1271      ; Set pose timer
C3/D0BA:	A547    	LDA $47        ; Menu flags
C3/D0BC:	2908    	AND #$08       ; Shop mode?...
C3/D0BE:	D003    	BNE $D0C3      ; Branch if not
C3/D0C0:	204BD1  	JSR $D14B      ; Create big arrow
C3/D0C3:	8000    	BRA $D0C5      ; ...

Mode 1: Sustain sprite
C3/D0C5:	A547    	LDA $47        ; Menu flags
C3/D0C7:	2901    	AND #$01       ; Remove actors?
C3/D0C9:	F02A    	BEQ $D0F5      ; Delete if so
C3/D0CB:	A62D    	LDX $2D        ; Queue index
C3/D0CD:	A547    	LDA $47        ; Menu flags
C3/D0CF:	2908    	AND #$08       ; Shop mode?...
C3/D0D1:	D011    	BNE $D0E4      ; Branch if not
C3/D0D3:	20F7D0  	JSR $D0F7      ; Waving arms?
C3/D0D6:	900C    	BCC $D0E4      ; Branch if not
C3/D0D8:	A62D    	LDX $2D        ; Queue index
C3/D0DA:	C221    	REP #$21       ; 16-bit A; C-
C3/D0DC:	BDCA34  	LDA $34CA,X    ; Base anim ptr
C3/D0DF:	690900  	ADC #$0009     ; Adjust value
C3/D0E2:	8007    	BRA $D0EB      ; Set real ptr
C3/D0E4:	A62D    	LDX $2D        ; Queue index
C3/D0E6:	C220    	REP #$20       ; 16-bit A
C3/D0E8:	BDCA34  	LDA $34CA,X    ; Base anim ptr
C3/D0EB:	9DC932  	STA $32C9,X    ; Set as current
C3/D0EE:	E220    	SEP #$20       ; ...
C3/D0F0:	208C12  	JSR $128C      ; Define OAM
C3/D0F3:	38      	SEC            ; Set to requeue
C3/D0F4:	60      	RTS            ; Exit
C3/D0F5:	18      	CLC            ; Set to dequeue
C3/D0F6:	60      	RTS

Determine whether shop actor should wave its arms
C3/D0F7:	8B      	PHB            ; Save DB
C3/D0F8:	A900    	LDA #$00       ; Zero A
C3/D0FA:	48      	PHA            ; Put on stack
C3/D0FB:	AB      	PLB            ; Set DB to 0
C3/D0FC:	7B      	TDC            ; Clear A
C3/D0FD:	8DD811  	STA $11D8      ; No Merit Award
C3/D100:	BFC9357E	LDA $7E35C9,X  ; Actor
C3/D104:	2037A4  	JSR $A437      ; Define compat
C3/D107:	7B      	TDC            ; Clear A
C3/D108:	A54B    	LDA $4B        ; Cursor slot
C3/D10A:	AA      	TAX            ; Index it
C3/D10B:	BF899D7E	LDA $7E9D89,X  ; Item in slot
C3/D10F:	20A28A  	JSR $8AA2      ; Compute index
C3/D112:	AE3421  	LDX $2134      ; Load it
C3/D115:	C220    	REP #$20       ; 16-bit A
C3/D117:	BF0150D8	LDA $D85001,X  ; Compatibility
C3/D11B:	25E7    	AND $E7        ; Actor can use?
C3/D11D:	E220    	SEP #$20       ; 8-bit A
C3/D11F:	F003    	BEQ $D124      ; Fail if not
C3/D121:	AB      	PLB            ; Restore DB
C3/D122:	38      	SEC            ; Mark success
C3/D123:	60      	RTS            ; Exit
C3/D124:	AB      	PLB            ; Restore DB
C3/D125:	18      	CLC            ; Mark failure
C3/D126:	60      	RTS

Compile party members for Buy menu
C3/D127:	A2019E  	LDX #$9E01     ; 7E/9E01
C3/D12A:	8E8121  	STX $2181      ; Set WRAM LBs
C3/D12D:	A600    	LDX $00        ; Member index: 0
C3/D12F:	C220    	REP #$20       ; 16-bit A
C3/D131:	BD6D00  	LDA $006D,X    ; Actor's address
C3/D134:	E220    	SEP #$20       ; 8-bit A
C3/D136:	F006    	BEQ $D13E      ; Skip if nobody
C3/D138:	A8      	TAY            ; Index it
C3/D139:	B90000  	LDA $0000,Y    ; Actor in slot
C3/D13C:	8002    	BRA $D140      ; Skip a line
C3/D13E:	A9FF    	LDA #$FF       ; Actor: None
C3/D140:	8D8021  	STA $2180      ; Add to list
C3/D143:	E8      	INX            ; Member index +1
C3/D144:	E8      	INX            ; Member index +1
C3/D145:	E00800  	CPX #$0008     ; Done 4 members?
C3/D148:	D0E5    	BNE $D12F      ; Loop if not
C3/D14A:	60      	RTS

Create arrow under shop actor if in party
C3/D14B:	A400    	LDY $00        ; Member slot: 1
C3/D14D:	A62D    	LDX $2D        ; Queue index
C3/D14F:	BDC935  	LDA $35C9,X    ; Shop actor
C3/D152:	D9019E  	CMP $9E01,Y    ; In member slot?
C3/D155:	D038    	BNE $D18F      ; Try next if not
C3/D157:	DA      	PHX            ; Save queue index
C3/D158:	5A      	PHY            ; Save member slot
C3/D159:	A900    	LDA #$00       ; ...
C3/D15B:	48      	PHA            ; ...
C3/D15C:	AB      	PLB            ; ...
C3/D15D:	A900    	LDA #$00       ; Min slot: 0
C3/D15F:	A0C982  	LDY #$82C9     ; C3/82C9
C3/D162:	20DE11  	JSR $11DE      ; Queue OAM fn
C3/D165:	A97E    	LDA #$7E       ; Bank: 7E
C3/D167:	48      	PHA            ; Put on stack
C3/D168:	AB      	PLB            ; Set DB to 7E
C3/D169:	7B      	TDC            ; Clear A
C3/D16A:	9DC935  	STA $35C9,X    ; No use...
C3/D16D:	BC4A37  	LDY $374A,X    ; Actor's index
C3/D170:	C220    	REP #$20       ; 16-bit A
C3/D172:	B9CA33  	LDA $33CA,Y    ; Actor's X
C3/D175:	9DCA33  	STA $33CA,X    ; Set arrow's
C3/D178:	B94A34  	LDA $344A,Y    ; Actor's Y
C3/D17B:	3A      	DEC A          ; +1 px up
C3/D17C:	3A      	DEC A          ; +1 px up
C3/D17D:	9D4A34  	STA $344A,X    ; Set arrow's Y
C3/D180:	A933EC  	LDA #$EC33     ; Anim table ptr
C3/D183:	9DC932  	STA $32C9,X    ; Set arrow's
C3/D186:	E220    	SEP #$20       ; 8-bit A
C3/D188:	A9D8    	LDA #$D8       ; Bank: D8
C3/D18A:	9DCA35  	STA $35CA,X    ; Set ptr HB
C3/D18D:	7A      	PLY            ; Member slot
C3/D18E:	FA      	PLX            ; Queue index
C3/D18F:	C8      	INY            ; Member slot +1
C3/D190:	C00400  	CPY #$0004     ; Done all 4?
C3/D193:	D0BA    	BNE $D14F      ; Loop if not
C3/D195:	60      	RTS

Create sign by each actor in Buy menu
C3/D196:	7B      	TDC            ; Clear A
C3/D197:	A8      	TAY            ; Char slot: 1
C3/D198:	5A      	PHY            ; Save char slot
C3/D199:	A904    	LDA #$04       ; Min slot: 32
C3/D19B:	A0AED1  	LDY #$D1AE     ; C3/D1AE
C3/D19E:	20DE11  	JSR $11DE      ; Queue OAM fn
C3/D1A1:	7A      	PLY            ; Char slot
C3/D1A2:	98      	TYA            ; Put in A
C3/D1A3:	9FC9357E	STA $7E35C9,X  ; Assign to sign
C3/D1A7:	C8      	INY            ; Char slot +1
C3/D1A8:	C00E00  	CPY #$000E     ; Done all 14?
C3/D1AB:	D0EB    	BNE $D198      ; Loop if not
C3/D1AD:	60      	RTS

Update shop sign
C3/D1AE:	AA      	TAX            ; Index mode
C3/D1AF:	7CB2D1  	JMP ($D1B2,X)  ; Handle mode

Jump table for the above
C3/D1B2:	B6D1    	; Initialize sprite
C3/D1B4:	E6D1    	; Sustain sprite

Mode 0: Initialize sprite
C3/D1B6:	A62D    	LDX $2D        ; Queue index
C3/D1B8:	C220    	REP #$20       ; 16-bit A
C3/D1BA:	A957EC  	LDA #$EC57     ; Anim table ptr
C3/D1BD:	9DC932  	STA $32C9,X    ; Set current
C3/D1C0:	9DCA34  	STA $34CA,X    ; Set original
C3/D1C3:	E220    	SEP #$20       ; 8-bit A
C3/D1C5:	FE4936  	INC $3649,X    ; Mode +1
C3/D1C8:	A9D8    	LDA #$D8       ; Bank: D8
C3/D1CA:	9DCA35  	STA $35CA,X    ; Set ptr HB
C3/D1CD:	7B      	TDC            ; Clear A
C3/D1CE:	BDC935  	LDA $35C9,X    ; Char slot
C3/D1D1:	9B      	TXY            ; Queue index
C3/D1D2:	AA      	TAX            ; Index slot
C3/D1D3:	BF3BECD8	LDA $D8EC3B,X  ; X position
C3/D1D7:	99CA33  	STA $33CA,Y    ; Set sign's
C3/D1DA:	BF49ECD8	LDA $D8EC49,X  ; Y position
C3/D1DE:	994A34  	STA $344A,Y    ; Set sign's
C3/D1E1:	A62D    	LDX $2D        ; Queue index
C3/D1E3:	207112  	JSR $1271      ; Set pose timer

Mode 1: Sustain sprite
C3/D1E6:	A547    	LDA $47        ; Menu flags
C3/D1E8:	2901    	AND #$01       ; Actors shown?
C3/D1EA:	F04E    	BEQ $D23A      ; Delete if not
C3/D1EC:	A62D    	LDX $2D        ; Queue index
C3/D1EE:	7B      	TDC            ; ...
C3/D1EF:	BDC935  	LDA $35C9,X    ; Char slot
C3/D1F2:	85E0    	STA $E0        ; Memorize it
C3/D1F4:	2009CC  	JSR $CC09      ; Sign
C3/D1F7:	F03F    	BEQ $D238      ; Exit if none
C3/D1F9:	C901    	CMP #$01       ; Equipped?
C3/D1FB:	F014    	BEQ $D211      ; Branch if so
C3/D1FD:	C902    	CMP #$02       ; Up?
C3/D1FF:	F025    	BEQ $D226      ; Branch if so
C3/D201:	C904    	CMP #$04       ; Equal?
C3/D203:	F015    	BEQ $D21A      ; Branch if so

Fork: Down sign
C3/D205:	A62D    	LDX $2D        ; Queue index
C3/D207:	C221    	REP #$21       ; 16-bit A; C-
C3/D209:	BDCA34  	LDA $34CA,X    ; Base anim ptr
C3/D20C:	691800  	ADC #$0018     ; Adjust value
C3/D20F:	801F    	BRA $D230      ; Set real ptr

Fork: Equipped sign
C3/D211:	A62D    	LDX $2D        ; Queue index
C3/D213:	C220    	REP #$20       ; 16-bit A
C3/D215:	BDCA34  	LDA $34CA,X    ; Base anim ptr
C3/D218:	8016    	BRA $D230      ; Set as current

Fork: Equal sign
C3/D21A:	A62D    	LDX $2D        ; Queue index
C3/D21C:	C221    	REP #$21       ; 16-bit A; C-
C3/D21E:	BDCA34  	LDA $34CA,X    ; Base anim ptr
C3/D221:	692400  	ADC #$0024     ; Adjust value
C3/D224:	800A    	BRA $D230      ; Set real ptr

Fork: Up sign
C3/D226:	A62D    	LDX $2D        ; Queue index
C3/D228:	C221    	REP #$21       ; 16-bit A; C-
C3/D22A:	BDCA34  	LDA $34CA,X    ; Base anim ptr
C3/D22D:	690C00  	ADC #$000C     ; Adjust value
C3/D230:	9DC932  	STA $32C9,X    ; Set real ptr
C3/D233:	E220    	SEP #$20       ; ...
C3/D235:	208C12  	JSR $128C      ; Define OAM
C3/D238:	38      	SEC            ; Set to requeue
C3/D239:	60      	RTS

Fork: Delete sign
C3/D23A:	18      	CLC            ; Set to dequeue
C3/D23B:	60      	RTS

Draw "Owned:" and "Equipped:" for Buy menu
C3/D23C:	2052D2  	JSR $D252      ; Color: Blue
C3/D23F:	A095D2  	LDY #$D295     ; Text pointer
C3/D242:	202603  	JSR $0326      ; Draw "Owned:"
C3/D245:	A09FD2  	LDY #$D29F     ; Text pointer
C3/D248:	202603  	JSR $0326      ; Draw "Equipped:"
C3/D24B:	8000    	BRA $D24D      ; ...

Set text color to player's color
C3/D24D:	A920    	LDA #$20       ; Palette 0
C3/D24F:	8529    	STA $29        ; Color: User's
C3/D251:	60      	RTS

Set text color to blue
C3/D252:	A92C    	LDA #$2C       ; Palette 3
C3/D254:	8529    	STA $29        ; Color: Blue
C3/D256:	60      	RTS

Positioned text for shop menu
C3/D257:	CF78 256DB100                  ; Weapon
C3/D25D:	CF78 29892FB100                ; Armor
C3/D264:	CF78 47892FB100                ; Item
C3/D26B:	CD78 8A6E7A74A8C5B100          ; Relics
C3/D275:	CD78 2DC38977C38900            ; Vendor
C3/D27E:	CF79 6B89FFFF89ABFFFF45AB00    ; BUY  SELL  EXIT
C3/D28B:	017A 2CAA00                    ; GP (owned)
C3/D290:	EB7A 2CAA00                    ; GP (trade)
C3/D295:	737A A5BD858DAB6B3900          ; Owned:
C3/D29F:	737B 7D892377858DAB6B3900      ; Equipped:
C3/D2AB:	557B 7389316DA9C36FFFC700      ; Bat Pwr
C3/D2B7:	557B 29892DC300                ; Defense
C3/D2BE:	A57B C700                      ; 
C3/D2C2:	DF78 D08DA7BD77BF8DC947B9      ; Hi! Can I help you?
                     9333B58971B945CBD100
C3/D2D8:	DF78 D093952BFF69778DB93F      ; Help yourself!
                     8DBDC9CBD1FFFFFFFF00
C3/D2EE:	DF78 D08D6F83FF69778DB93F      ; How many?
                     8DBDC9CBD100
C3/D300:	DF78 D09395BBFF89A97F8DB9      ; Whatcha got?
        	     3F8DCBD1FFFFFFFFFF00
C3/D316:	DF78 D08D6F83FF89A97F8DB9      ; How many?
        	     3F8DCBD100
C3/D327:	DF78 D09D8D47FF47C5A5C9D1      ; "Bye!          "
        	     FFFFFFFFFFFFFFFFFF00
C3/D33D:	DF78 D0C7C7916B992BFF7FA9      ; You need more GP!
        	     938DB5893F99D100
C3/D351:	DF78 D0A589FFA585938DB5D1      ; "Too many!       "
        	     FFFFFFFFFF00
C3/D363:	DF78 D054838BAD21FF37C189      ; "One's plenty! "
        	     25B93FB5D100

===============================================================================

Jump table for ending sequences
C3/D375:	2DD5    	; 00: Fade screen before ending scene
C3/D377:	43D5    	; 01: Return to event script
C3/D379:	DBD7    	; 02: Show aerial-view panning clouds
C3/D37B:	1BD8    	; 03: Wait before fading screen
C3/D37D:	22D8    	; 04: Show spinning clouds
C3/D37F:	50D5    	; 05: Start sideview airship scene
C3/D381:	F3D5    	; 06: Bogus...
C3/D383:	4ED6    	; 07: Bogus...
C3/D385:	4ED6    	; 08: Bogus...
C3/D387:	06D7    	; 09: Start aerial-view airship scene
C3/D389:	44D7    	; 0A: Show aerial-view airship
C3/D38B:	53D7    	; 0B: Fade screen to white
C3/D38D:	49D8    	; 0C: Start boat scene
C3/D38F:	8FD8    	; 0D: Show boat sprite
C3/D391:	45D9    	; 0E: Bogus...
C3/D393:	45D9    	; 0F: Bogus...
C3/D395:	45D9    	; 10: Start skimming airship scene
C3/D397:	07DA    	; 11: Show swooping bird
C3/D399:	39DA    	; 12: Unused...
C3/D39B:	39DA    	; 13: Unused...
C3/D39D:	92DC    	; 14: Start frontview airship scene
C3/D39F:	1EDD    	; 15: Show late bird flock
C3/D3A1:	68DD    	; 16: Bogus...
C3/D3A3:	68DD    	; 17: Bogus...
C3/D3A5:	24DE    	; 18: Start aerial-view plains scene
C3/D3A7:	6DDE    	; 19: Bogus...
C3/D3A9:	6DDE    	; 1A: Bogus...
C3/D3AB:	6DDE    	; 1B: Bogus...
C3/D3AD:	6DDE    	; 1C: Start rearview airship scene
C3/D3AF:	9CDF    	; 1D: Bogus...
C3/D3B1:	9CDF    	; 1E: Bogus...
C3/D3B3:	9CDF    	; 1F: Bogus...
C3/D3B5:	B3DF    	; 20: Start final airship scene
C3/D3B7:	1AE0    	; 21: Fade final airship
C3/D3B9:	A6E0    	; 22: Bogus...
C3/D3BB:	A6E0    	; 23: Bogus...
C3/D3BD:	A6E0    	; 24: Bogus...
C3/D3BF:	06D7    	; 25: Bogus...
C3/D3C1:	06D7    	; 26: Bogus...
C3/D3C3:	06D7    	; 27: Bogus...
C3/D3C5:	A8F1    	; 28: Start Shadow's scene
C3/D3C7:	ECF1    	; 29: Fade in "Shadow as"
C3/D3C9:	FBF1    	; 2A: Switch Shadow's names
C3/D3CB:	0AF2    	; 2B: Fade all but Shadow's name
C3/D3CD:	06D7    	; 2C: Bogus...
C3/D3CF:	08F6    	; 2D: Start first book scene
C3/D3D1:	19F6    	; 2E: Animate first book
C3/D3D3:	28F6    	; 2F: Wait 480 frames
C3/D3D5:	34F6    	; 30: Pixelate and fade first book
C3/D3D7:	06D7    	; 31: Bogus...
C3/D3D9:	32F2    	; 32: Start Cyan's scene
C3/D3DB:	53F2    	; 33: Fade in "Cyan as"
C3/D3DD:	62F2    	; 34: Switch Cyan's names
C3/D3DF:	71F2    	; 35: Fade all but Cyan's name
C3/D3E1:	06D7    	; 36: Bogus...
C3/D3E3:	06D7    	; 37: Bogus...
C3/D3E5:	21F2    	; 38: Fade actor's true name
C3/D3E7:	06D7    	; 39: Bogus...
C3/D3E9:	06D7    	; 3A: Bogus...
C3/D3EB:	06D7    	; 3B: Bogus...
C3/D3ED:	1BF3    	; 3C: Start Mog's scene
C3/D3EF:	37F3    	; 3D: Fade in "Mog as"
C3/D3F1:	46F3    	; 3E: Switch Mog's names
C3/D3F3:	55F3    	; 3F: Fade all but Mog's name
C3/D3F5:	85F2    	; 40: Start Edgar and Sabin's scene
C3/D3F7:	9EF2    	; 41: Fade in "Edgar as"
C3/D3F9:	ADF2    	; 42: Switch Edgar's names
C3/D3FB:	BCF2    	; 43: Show Sabin's name, fade Edgar's
C3/D3FD:	DCF2    	; 44: Delete Edgar's name
C3/D3FF:	ECF2    	; 45: Switch Sabin's names
C3/D401:	6CF3    	; 46: Start Gogo's scene
C3/D403:	93F3    	; 47: Fade in "Gogo as"
C3/D405:	B6F3    	; 48: Switch Gogo's names
C3/D407:	C5F3    	; 49: Fade all but Gogo's name
C3/D409:	4BF6    	; 4A: Start last book scene
C3/D40B:	64F6    	; 4B: Wait 180 frames
C3/D40D:	70F6    	; 4C: Stop last book and fade in text
C3/D40F:	83F6    	; 4D: Pixelate and fade last book
C3/D411:	06D7    	; 4E: Bogus...
C3/D413:	07F3    	; 4F: Fade all but Sabin's name
C3/D415:	34F4    	; 50: Start Gau's scene
C3/D417:	4DF4    	; 51: Fade in "Gau as"
C3/D419:	5CF4    	; 52: Switch Gau's names; create face
C3/D41B:	6EF4    	; 53: Fade all but Gau's name
C3/D41D:	06D7    	; 54: Bogus...
C3/D41F:	06D7    	; 55: Bogus...
C3/D421:	06D7    	; 56: Bogus...
C3/D423:	06D7    	; 57: Bogus...
C3/D425:	06D7    	; 58: Bogus...
C3/D427:	06D7    	; 59: Bogus...
C3/D429:	85F4    	; 5A: Start Terra's scene
C3/D42B:	9EF4    	; 5B: Fade in "Terra as"
C3/D42D:	ADF4    	; 5C: Switch Terra's names, create glint
C3/D42F:	BFF4    	; 5D: Fade all but Terra's name
C3/D431:	06D7    	; 5E: Bogus...
C3/D433:	06D7    	; 5F: Bogus...
C3/D435:	06D7    	; 60: Bogus...
C3/D437:	06D7    	; 61: Bogus...
C3/D439:	06D7    	; 62: Bogus...
C3/D43B:	06D7    	; 63: Bogus...
C3/D43D:	D6F4    	; 64: Start Locke and Celes's scene
C3/D43F:	F1F4    	; 65: Fade in "Locke as"
C3/D441:	00F5    	; 66: Switch Locke's names
C3/D443:	0FF5    	; 67: Show Celes's name, fade Locke's
C3/D445:	2FF5    	; 68: Delete Locke's name
C3/D447:	3FF5    	; 69: Switch Celes's names
C3/D449:	58F5    	; 6A: Fade all but Celes's name
C3/D44B:	06D7    	; 6B: Bogus...
C3/D44D:	06D7    	; 6C: Bogus...
C3/D44F:	06D7    	; 6D: Bogus...
C3/D451:	6FF5    	; 6E: Start Relm's scene
C3/D453:	8BF5    	; 6F: Fade in "Relm as"
C3/D455:	9AF5    	; 70: Switch Relm's names
C3/D457:	A9F5    	; 71: Fade all but Relm's name
C3/D459:	06D7    	; 72: Bogus...
C3/D45B:	06D7    	; 73: Bogus...
C3/D45D:	06D7    	; 74: Bogus...
C3/D45F:	06D7    	; 75: Bogus...
C3/D461:	06D7    	; 76: Bogus...
C3/D463:	06D7    	; 77: Bogus...
C3/D465:	C0F5    	; 78: Start Strago's scene
C3/D467:	D6F5    	; 79: Fade in "Strago as"
C3/D469:	E5F5    	; 7A: Switch Strago's names
C3/D46B:	F4F5    	; 7B: Fade all but Strago's name
C3/D46D:	06D7    	; 7C: Bogus...
C3/D46F:	06D7    	; 7D: Bogus...
C3/D471:	06D7    	; 7E: Bogus...
C3/D473:	06D7    	; 7F: Bogus...
C3/D475:	06D7    	; 80: Bogus...
C3/D477:	06D7    	; 81: Bogus...
C3/D479:	97F6    	; 82: Start Setzer's scene
C3/D47B:	CEF6    	; 83: Fade in "Setzer as"
C3/D47D:	DDF6    	; 84: Switch Setzer's names
C3/D47F:	ECF6    	; 85: Fade background
C3/D481:	FBF6    	; 86: Fade cards and name
C3/D483:	1FF7    	; 87: Start Umaro's scene
C3/D485:	3EF7    	; 88: Fade in "Umaro as"
C3/D487:	4DF7    	; 89: Switch Umaro's names
C3/D489:	5CF7    	; 8A: Fade all but Umaro's name

Display requested ending cinematic
C3/D48B:	08      	PHP            ; Push PS
C3/D48C:	C230    	REP #$30       ; 16-bit A, X, Y
C3/D48E:	48      	PHA            ; ...
C3/D48F:	DA      	PHX            ; ...
C3/D490:	5A      	PHY            ; Push Y
C3/D491:	8B      	PHB            ; Push DB
C3/D492:	0B      	PHD            ; Push DP
C3/D493:	E220    	SEP #$20       ; 8-bit A
C3/D495:	A900    	LDA #$00       ; Zero A
C3/D497:	48      	PHA            ; Put on stack
C3/D498:	AB      	PLB            ; Set DB to 0
C3/D499:	A20000  	LDX #$0000     ; Clear X
C3/D49C:	DA      	PHX            ; Put on stack
C3/D49D:	2B      	PLD            ; Set DP to 0
C3/D49E:	A20000  	LDX #$0000     ; ...
C3/D4A1:	8600    	STX $00        ; ...
C3/D4A3:	A97E    	LDA #$7E       ; Bank: 7E
C3/D4A5:	8D8321  	STA $2183      ; Set WRAM HB
C3/D4A8:	20C000  	JSR $00C0      ; Reroute NMI/IRQ
C3/D4AB:	206C70  	JSR $706C      ; Reset variables
C3/D4AE:	A02C01  	LDY #$012C     ; Scroll delay: 300
C3/D4B1:	8485    	STY $85        ; For true char name
C3/D4B3:	64B4    	STZ $B4        ; Blue credits: N
C3/D4B5:	20F5D4  	JSR $D4F5      ; Stop VRAM DMA
C3/D4B8:	20E5D4  	JSR $D4E5      ; Disable pad, etc.
C3/D4BB:	2248CDD4	JSL $D4CD48    ; Init registers
C3/D4BF:	224FACC3	JSL $C3AC4F    ; Init joypad...
C3/D4C3:	207F11  	JSR $117F      ; Reset OAM, queue
C3/D4C6:	20C3EC  	JSR $ECC3      ; Clear VRAM
C3/D4C9:	223BCFD4	JSL $D4CF3B    ; Back up data
C3/D4CD:	AD0102  	LDA $0201      ; Event parameter
C3/D4D0:	8526    	STA $26        ; Set scene mode
C3/D4D2:	2014D5  	JSR $D514      ; Handle scene
C3/D4D5:	224BCFD4	JSL $D4CF4B    ; Restore backup
C3/D4D9:	20E5D4  	JSR $D4E5      ; Disable pad, etc.
C3/D4DC:	C230    	REP #$30       ; 16-bit A, X, Y
C3/D4DE:	2B      	PLD            ; Pull DP
C3/D4DF:	AB      	PLB            ; Pull DB
C3/D4E0:	7A      	PLY            ; Pull Y
C3/D4E1:	FA      	PLX            ; ...
C3/D4E2:	68      	PLA            ; ...
C3/D4E3:	28      	PLP            ; Pull PS
C3/D4E4:	6B      	RTL

Disable screen, interrupts, joypad, and HDMA
C3/D4E5:	A98F    	LDA #$8F       ; BRT: 15 and OFF
C3/D4E7:	8D0021  	STA $2100      ; Disable screen
C3/D4EA:	7B      	TDC            ; Clear A
C3/D4EB:	8D0042  	STA $4200      ; Disable INT, pad
C3/D4EE:	8D0B42  	STA $420B      ; Disable DMA...
C3/D4F1:	8D0C42  	STA $420C      ; Disable HDMA
C3/D4F4:	60      	RTS

Reset variables for automatic uploads during NMI
C3/D4F5:	7B      	TDC            ; Clear A
C3/D4F6:	A8      	TAY            ; Clear Y
C3/D4F7:	841B    	STY $1B        ; Halt VRAM B
C3/D4F9:	841D    	STY $1D        ; Clear src-B LBs
C3/D4FB:	851F    	STA $1F        ; Clear src-B HB
C3/D4FD:	8416    	STY $16        ; Clear src-A LBs
C3/D4FF:	8518    	STA $18        ; Clear src-A HB
C3/D501:	A00100  	LDY #$0001     ; Bytes: 1
C3/D504:	8419    	STY $19        ; Set data size B
C3/D506:	8412    	STY $12        ; Set data size A
C3/D508:	A0FF7F  	LDY #$7FFF     ; $7FFF
C3/D50B:	8414    	STY $14        ; Set VRAM ptr A
C3/D50D:	60      	RTS

Enable color addition on BG1
C3/D50E:	A901    	LDA #$01       ; BG1: ADD mode
C3/D510:	8D3121  	STA $2131      ; Set register
C3/D513:	60      	RTS

Handle ending sequence
C3/D514:	7B      	TDC            ; Clear A
C3/D515:	A526    	LDA $26        ; Scene mode
C3/D517:	C9FF    	CMP #$FF       ; Exit to map?
C3/D519:	F011    	BEQ $D52C      ; Exit if so
C3/D51B:	C220    	REP #$20       ; 16-bit A
C3/D51D:	0A      	ASL A          ; Double it
C3/D51E:	AA      	TAX            ; Index it
C3/D51F:	E220    	SEP #$20       ; 8-bit A
C3/D521:	FC75D3  	JSR ($D375,X)  ; Handle mode
C3/D524:	201B12  	JSR $121B      ; Run anim queue
C3/D527:	20D313  	JSR $13D3      ; Refresh screen
C3/D52A:	80E8    	BRA $D514      ; Loop
C3/D52C:	60      	RTS

00: Fade screen before ending scene
C3/D52D:	A420    	LDY $20        ; Delay expired?
C3/D52F:	D011    	BNE $D542      ; Exit if not
C3/D531:	A901    	LDA #$01       ; C3/D543
C3/D533:	8526    	STA $26        ; Next: Exit
C3/D535:	A00F00  	LDY #$000F     ; Frames: 15
C3/D538:	8420    	STY $20        ; Set exit delay
C3/D53A:	A900    	LDA #$00       ; Min slot: 0
C3/D53C:	A081E1  	LDY #$E181     ; C3/E181
C3/D53F:	20DE11  	JSR $11DE      ; Queue fade-out
C3/D542:	60      	RTS

01: Return to event script after delay
C3/D543:	A420    	LDY $20        ; Delay expired?
C3/D545:	D003    	BNE $D54A      ; Exit if not
C3/D547:	4CA3F1  	JMP $F1A3      ; End scene
C3/D54A:	60      	RTS

Set text for credits to be blue
C3/D54B:	A901    	LDA #$01       ; Blue text: Y
C3/D54D:	85B4    	STA $B4        ; Set color mode
C3/D54F:	60      	RTS

05: Start sideview airship scene
C3/D550:	204BD5  	JSR $D54B      ; Blue text: Y
C3/D553:	22D7CED4	JSL $D4CED7    ; Init registers
C3/D557:	209CE3  	JSR $E39C      ; Upload GFX, map
C3/D55A:	2076E3  	JSR $E376      ; Reset M7 vars
C3/D55D:	22FCCBD4	JSL $D4CBFC    ; Queue HDMA 1-7
C3/D561:	A01000  	LDY #$0010     ; Zoom-out: 16
C3/D564:	848E    	STY $8E        ; Set for airship
C3/D566:	C220    	REP #$20       ; 16-bit A
C3/D568:	A9F1FF  	LDA #$FFF1     ; H-Scroll: -15
C3/D56B:	8F8DB67E	STA $7EB68D    ; Set for airship
C3/D56F:	A92E00  	LDA #$002E     ; V-Scroll: 46
C3/D572:	8F8FB67E	STA $7EB68F    ; Set for airship
C3/D576:	A97100  	LDA #$0071     ; Center X: 113
C3/D579:	8F95B67E	STA $7EB695    ; Set for airship
C3/D57D:	A98D00  	LDA #$008D     ; Center Y: 141
C3/D580:	8F97B67E	STA $7EB697    ; Set for airship
C3/D584:	E220    	SEP #$20       ; 8-bit A
C3/D586:	A05E00  	LDY #$005E     ; Vertical angle
C3/D589:	84C7    	STY $C7        ; Set for clouds
C3/D58B:	A0002F  	LDY #$2F00     ; Base divisor
C3/D58E:	84C5    	STY $C5        ; Set matrices'
C3/D590:	A00001  	LDY #$0100     ; Center X: 256
C3/D593:	84B7    	STY $B7        ; Set for clouds
C3/D595:	A01103  	LDY #$0311     ; Center Y: 785
C3/D598:	84B9    	STY $B9        ; Set for clouds
C3/D59A:	A08000  	LDY #$0080     ; BG1's X: 128
C3/D59D:	8435    	STY $35        ; Set for clouds
C3/D59F:	A09102  	LDY #$0291     ; BG1's Y: 657
C3/D5A2:	8437    	STY $37        ; Set for clouds
C3/D5A4:	2022ED  	JSR $ED22      ; Make matrix tbl
C3/D5A7:	20BFE2  	JSR $E2BF      ; Useless...
C3/D5AA:	A400    	LDY $00        ; Scene timer: 0
C3/D5AC:	84CF    	STY $CF        ; Set for text
C3/D5AE:	20C8E8  	JSR $E8C8      ; Build text OAM
C3/D5B1:	A902    	LDA #$02       ; Min slot: 16
C3/D5B3:	A01EE7  	LDY #$E71E     ; C3/E71E
C3/D5B6:	20DE11  	JSR $11DE      ; Queue credits
C3/D5B9:	A902    	LDA #$02       ; Min slot: 16
C3/D5BB:	A0F3D5  	LDY #$D5F3     ; C3/D5F3
C3/D5BE:	20DE11  	JSR $11DE      ; Queue M7 anim
C3/D5C1:	A900    	LDA #$00       ; Min slot: 0
C3/D5C3:	A076E0  	LDY #$E076     ; C3/E076
C3/D5C6:	20DE11  	JSR $11DE      ; Queue rotor anim
C3/D5C9:	20E0E0  	JSR $E0E0      ; Make text black
C3/D5CC:	20F7E0  	JSR $E0F7      ; Load cloud colors
C3/D5CF:	209CDF  	JSR $DF9C      ; Load sky/plane's
C3/D5D2:	A903    	LDA #$03       ; C3/D81B
C3/D5D4:	8526    	STA $26        ; Next: Fade-out
C3/D5D6:	A01C02  	LDY #$021C     ; Frames: 540
C3/D5D9:	8420    	STY $20        ; Set fade delay
C3/D5DB:	4CDED5  	JMP $D5DE      ; ...

Queue field fade-in
C3/D5DE:	A900    	LDA #$00       ; Min slot: 0
C3/D5E0:	A050E1  	LDY #$E150     ; C3/E150
C3/D5E3:	20DE11  	JSR $11DE      ; Queue fade-in
C3/D5E6:	60      	RTS

Set brightness before fading in colors manually
C3/D5E7:	A901    	LDA #$01       ; BRT: 1 and ON
C3/D5E9:	8544    	STA $44        ; Set brightness
C3/D5EB:	20D313  	JSR $13D3      ; Refresh screen
C3/D5EE:	A90F    	LDA #$0F       ; BRT: 15 and ON
C3/D5F0:	8544    	STA $44        ; Set brightness
C3/D5F2:	60      	RTS

Shrink sideview airship and scroll clouds
C3/D5F3:	AA      	TAX            ; Index mode
C3/D5F4:	7CF7D5  	JMP ($D5F7,X)  ; Handle mode

Jump table for the above
C3/D5F7:	FDD5    	; Initialize unused timer
C3/D5F9:	0CD6    	; Shrink airship, scroll clouds
C3/D5FB:	2CD6    	; Scroll clouds

Mode 0: Initialize unused timer...
C3/D5FD:	A62D    	LDX $2D        ; Queue index
C3/D5FF:	FE4936  	INC $3649,X    ; Mode +1
C3/D602:	C220    	REP #$20       ; 16-bit A
C3/D604:	A94E02  	LDA #$024E     ; Frames: 590
C3/D607:	9D4933  	STA $3349,X    ; Set mode timer
C3/D60A:	E220    	SEP #$20       ; 8-bit A

Mode 1: Shrink airship, scroll clouds
C3/D60C:	A62D    	LDX $2D        ; Queue index
C3/D60E:	A523    	LDA $23        ; NMI count
C3/D610:	2901    	AND #$01       ; Odd value?
C3/D612:	D004    	BNE $D618      ; Branch if so
C3/D614:	C220    	REP #$20       ; 16-bit A
C3/D616:	E68E    	INC $8E        ; Matrix A +1
C3/D618:	C220    	REP #$20       ; 16-bit A
C3/D61A:	A58E    	LDA $8E        ; Matrix A
C3/D61C:	8D0006  	STA $0600      ; Set for airship
C3/D61F:	9CC207  	STZ $07C2      ; Matrix B: 0
C3/D622:	9C8409  	STZ $0984      ; Matrix C: 0
C3/D625:	2031D6  	JSR $D631      ; Scroll clouds
C3/D628:	E220    	SEP #$20       ; ...
C3/D62A:	38      	SEC            ; Set to requeue
C3/D62B:	60      	RTS

Mode 2: Scroll clouds (unused)
C3/D62C:	2031D6  	JSR $D631      ; Scroll clouds
C3/D62F:	38      	SEC            ; Set to requeue
C3/D630:	60      	RTS

Scroll clouds under sideview airship
C3/D631:	C220    	REP #$20       ; 16-bit A
C3/D633:	C635    	DEC $35        ; BG1's X -1
C3/D635:	C6B7    	DEC $B7        ; Center X -1
C3/D637:	A535    	LDA $35        ; BG1 X-Pos
C3/D639:	8D91B6  	STA $B691      ; To HDMA table
C3/D63C:	A537    	LDA $37        ; BG1 Y-Pos
C3/D63E:	8D93B6  	STA $B693      ; To HDMA table
C3/D641:	A5B7    	LDA $B7        ; Center X
C3/D643:	8D99B6  	STA $B699      ; To HDMA table
C3/D646:	A5B9    	LDA $B9        ; Center Y
C3/D648:	8D9BB6  	STA $B69B      ; To HDMA table
C3/D64B:	E220    	SEP #$20       ; 8-bit A
C3/D64D:	60      	RTS

Set to fade credits
C3/D64E:	A9C3    	LDA #$C3       ; C3/115F
C3/D650:	85ED    	STA $ED        ; Set src HB
C3/D652:	A904    	LDA #$04       ; Slowness: 4
C3/D654:	A0C931  	LDY #$31C9     ; To OBJ pal 4
C3/D657:	84E7    	STY $E7        ; ...
C3/D659:	A25F11  	LDX #$115F     ; Black palette
C3/D65C:	86EB    	STX $EB        ; ...
C3/D65E:	201510  	JSR $1015      ; Do big font
C3/D661:	A9C3    	LDA #$C3       ; ...
C3/D663:	85ED    	STA $ED        ; ...
C3/D665:	A904    	LDA #$04       ; Slowness: 4
C3/D667:	A0E931  	LDY #$31E9     ; To OBJ pal 5
C3/D66A:	84E7    	STY $E7        ; ...
C3/D66C:	A25F11  	LDX #$115F     ; Black palette
C3/D66F:	86EB    	STX $EB        ; ...
C3/D671:	201510  	JSR $1015      ; Do small font
C3/D674:	60      	RTS

Set to fade in credits to white and blue
C3/D675:	A9C2    	LDA #$C2       ; Bank: C2
C3/D677:	85ED    	STA $ED        ; Set src HB
C3/D679:	A904    	LDA #$04       ; Slowness: 4
C3/D67B:	A0C931  	LDY #$31C9     ; To OBJ pal 4
C3/D67E:	84E7    	STY $E7        ; ...
C3/D680:	A24C97  	LDX #$974C     ; C2/974C
C3/D683:	86EB    	STX $EB        ; ...
C3/D685:	201510  	JSR $1015      ; Do big font
C3/D688:	A9C2    	LDA #$C2       ; ...
C3/D68A:	85ED    	STA $ED        ; ...
C3/D68C:	A904    	LDA #$04       ; Slowness: 4
C3/D68E:	A0E931  	LDY #$31E9     ; To OBJ pal 5
C3/D691:	84E7    	STY $E7        ; ...
C3/D693:	A24497  	LDX #$9744     ; C2/9744
C3/D696:	86EB    	STX $EB        ; ...
C3/D698:	201510  	JSR $1015      ; Do small font
C3/D69B:	60      	RTS

Set to fade in credits to dark blue
C3/D69C:	A9C2    	LDA #$C2       ; Bank: C2
C3/D69E:	85ED    	STA $ED        ; Set src HB
C3/D6A0:	A904    	LDA #$04       ; Slowness: 4
C3/D6A2:	A0C931  	LDY #$31C9     ; To OBJ pal 4
C3/D6A5:	84E7    	STY $E7        ; ...
C3/D6A7:	A23C97  	LDX #$973C     ; C2/973C
C3/D6AA:	86EB    	STX $EB        ; ...
C3/D6AC:	201510  	JSR $1015      ; Do big font
C3/D6AF:	A9C2    	LDA #$C2       ; ...
C3/D6B1:	85ED    	STA $ED        ; ...
C3/D6B3:	A904    	LDA #$04       ; Slowness: 4
C3/D6B5:	A0E931  	LDY #$31E9     ; To OBJ pal 5
C3/D6B8:	84E7    	STY $E7        ; ...
C3/D6BA:	A23497  	LDX #$9734     ; C2/9734
C3/D6BD:	86EB    	STX $EB        ; ...
C3/D6BF:	201510  	JSR $1015      ; Do small font
C3/D6C2:	60      	RTS

Load non-text sprite colors for Mode 7 scene
C3/D6C3:	A9C2    	LDA #$C2       ; Source HB
C3/D6C5:	A04931  	LDY #$3149     ; To OBJ pal 0
C3/D6C8:	A2EC97  	LDX #$97EC     ; Source LBs
C3/D6CB:	20F90F  	JSR $0FF9      ; Do balloon's
C3/D6CE:	A9C2    	LDA #$C2       ; Source HB
C3/D6D0:	A06931  	LDY #$3169     ; To OBJ pal 1
C3/D6D3:	A28C97  	LDX #$978C     ; Source LBs
C3/D6D6:	20F90F  	JSR $0FF9      ; Do airships'
C3/D6D9:	A9C2    	LDA #$C2       ; Source HB
C3/D6DB:	A08931  	LDY #$3189     ; To OBJ pal 2
C3/D6DE:	A2AC97  	LDX #$97AC     ; Source LBs
C3/D6E1:	20F90F  	JSR $0FF9      ; Do boat's
C3/D6E4:	A9C2    	LDA #$C2       ; Source HB
C3/D6E6:	A0A931  	LDY #$31A9     ; To OBJ pal 3
C3/D6E9:	A2CC97  	LDX #$97CC     ; Source LBs
C3/D6EC:	20F90F  	JSR $0FF9      ; Do cockpit's
C3/D6EF:	A9C2    	LDA #$C2       ; Source HB
C3/D6F1:	A00932  	LDY #$3209     ; To OBJ pal 6
C3/D6F4:	A22C98  	LDX #$982C     ; Source LBs
C3/D6F7:	20F90F  	JSR $0FF9      ; Do gray birds'
C3/D6FA:	A9C2    	LDA #$C2       ; Source HB
C3/D6FC:	A02932  	LDY #$3229     ; To OBJ pal 7
C3/D6FF:	A20C98  	LDX #$980C     ; Source LBs
C3/D702:	20F90F  	JSR $0FF9      ; Do spray's
C3/D705:	60      	RTS

09: Start aerial-view airship scene
C3/D706:	204BD5  	JSR $D54B      ; Blue text: Y
C3/D709:	22D7CED4	JSL $D4CED7    ; Init registers
C3/D70D:	2087E4  	JSR $E487      ; Upload GFX, map
C3/D710:	2076E3  	JSR $E376      ; Reset M7 vars
C3/D713:	228FCBD4	JSL $D4CB8F    ; HDMA: Matrices
C3/D717:	20C3D6  	JSR $D6C3      ; Load OBJ colors
C3/D71A:	20E0E0  	JSR $E0E0      ; Make text black
C3/D71D:	20F7E0  	JSR $E0F7      ; Load cloud colors
C3/D720:	A0608A  	LDY #$8A60     ; Anim ptr LBs
C3/D723:	A9C2    	LDA #$C2       ; Anim ptr HB
C3/D725:	20A9E1  	JSR $E1A9      ; Queue cloud anim
C3/D728:	20DEE8  	JSR $E8DE      ; Build text OAM
C3/D72B:	A400    	LDY $00        ; Scene timer: 0
C3/D72D:	84CF    	STY $CF        ; Set for text
C3/D72F:	A902    	LDA #$02       ; Min slot: 16
C3/D731:	A030E7  	LDY #$E730     ; C3/E730
C3/D734:	20DE11  	JSR $11DE      ; Queue credits
C3/D737:	2024E2  	JSR $E224      ; Queue M7 handler
C3/D73A:	E626    	INC $26        ; Next: C3/D744
C3/D73C:	A0C003  	LDY #$03C0     ; Frames: 960
C3/D73F:	8420    	STY $20        ; Set plane delay
C3/D741:	4CDED5  	JMP $D5DE      ; Queue fade-in

0A: Show aerial-view airship and its shadow
C3/D744:	A420    	LDY $20        ; Delay expired?
C3/D746:	D00A    	BNE $D752      ; Exit if not
C3/D748:	E626    	INC $26        ; Next: C3/D753
C3/D74A:	A07008  	LDY #$0870     ; Frames: 2160
C3/D74D:	8420    	STY $20        ; Set fade delay
C3/D74F:	2074D7  	JSR $D774      ; Create sprites
C3/D752:	60      	RTS

0B: Fade screen to white
C3/D753:	A420    	LDY $20        ; Delay expired?
C3/D755:	D01C    	BNE $D773      ; Exit if not
C3/D757:	A903    	LDA #$03       ; C3/D81B
C3/D759:	8526    	STA $26        ; Next: Black out
C3/D75B:	A07800  	LDY #$0078     ; Frames: 120
C3/D75E:	8420    	STY $20        ; Set fade delay
C3/D760:	A9C3    	LDA #$C3       ; Bank: C3
C3/D762:	85ED    	STA $ED        ; Set src HB
C3/D764:	A902    	LDA #$02       ; Slowness: 2
C3/D766:	A0A930  	LDY #$30A9     ; To BG pal 3
C3/D769:	84E7    	STY $E7        ; ...
C3/D76B:	A23F11  	LDX #$113F     ; White palette
C3/D76E:	86EB    	STX $EB        ; ...
C3/D770:	201510  	JSR $1015      ; Whiten clouds
C3/D773:	60      	RTS

Create aerial-view airship and its shadow
C3/D774:	20B8D7  	JSR $D7B8      ; Queue ship fn
C3/D777:	C220    	REP #$20       ; 16-bit A
C3/D779:	A9CC8C  	LDA #$8CCC     ; Ship anim ptr
C3/D77C:	20C1D7  	JSR $D7C1      ; Set spd, timer
C3/D77F:	E220    	SEP #$20       ; 8-bit A
C3/D781:	A9C2    	LDA #$C2       ; Bank: C2
C3/D783:	9FCA357E	STA $7E35CA,X  ; Set ptr HB
C3/D787:	A9F8    	LDA #$F8       ; X: 248
C3/D789:	9FCA337E	STA $7E33CA,X  ; Set airship's
C3/D78D:	A9A0    	LDA #$A0       ; Y: 160
C3/D78F:	9F4A347E	STA $7E344A,X  ; Set airship's
C3/D793:	A903    	LDA #$03       ; Min slot: 24
C3/D795:	A0D4ED  	LDY #$EDD4     ; C3/EDD4
C3/D798:	20DE11  	JSR $11DE      ; Queue shadow fn
C3/D79B:	C220    	REP #$20       ; 16-bit A
C3/D79D:	A9E08C  	LDA #$8CE0     ; Shadow anim ptr
C3/D7A0:	20C1D7  	JSR $D7C1      ; Set spd, timer
C3/D7A3:	E220    	SEP #$20       ; 8-bit A
C3/D7A5:	A9C2    	LDA #$C2       ; Bank: C2
C3/D7A7:	9FCA357E	STA $7E35CA,X  ; Set ptr HB
C3/D7AB:	A9F8    	LDA #$F8       ; X: 248
C3/D7AD:	9FCA337E	STA $7E33CA,X  ; Set shadow's
C3/D7B1:	A9B0    	LDA #$B0       ; Y: 176
C3/D7B3:	9F4A347E	STA $7E344A,X  ; Set shadow's
C3/D7B7:	60      	RTS

Queue linearly moving temporary sprite
C3/D7B8:	A901    	LDA #$01       ; Min slot: 8
C3/D7BA:	A0D4ED  	LDY #$EDD4     ; C3/EDD4
C3/D7BD:	20DE11  	JSR $11DE      ; Queue OAM fn
C3/D7C0:	60      	RTS

Initialize data for aerial-view airship or its shadow
C3/D7C1:	9FC9327E	STA $7E32C9,X  ; Set anim ptr
C3/D7C5:	A9C0FF  	LDA #$FFC0     ; H-Spd: -0.25 px
C3/D7C8:	9FC9347E	STA $7E34C9,X  ; Set sprite's
C3/D7CC:	A9E0FF  	LDA #$FFE0     ; V-Spd: -0.125 px
C3/D7CF:	9F49357E	STA $7E3549,X  ; Set sprite's
C3/D7D3:	A90004  	LDA #$0400     ; Frames: 1024
C3/D7D6:	9F49337E	STA $7E3349,X  ; Set hide delay
C3/D7DA:	60      	RTS

02: Show aerial-view panning clouds
C3/D7DB:	20F0D7  	JSR $D7F0      ; Load map, etc.
C3/D7DE:	A0F000  	LDY #$00F0     ; Frames: 240
C3/D7E1:	8420    	STY $20        ; Set fade delay
C3/D7E3:	A02C8B  	LDY #$8B2C     ; Anim ptr LBs
C3/D7E6:	A9C2    	LDA #$C2       ; Anim ptr HB
C3/D7E8:	20A9E1  	JSR $E1A9      ; Queue cloud anim
C3/D7EB:	E626    	INC $26        ; Next: Fade-out
C3/D7ED:	4CDED5  	JMP $D5DE      ; Queue fade-in

Initialize data for spinning or panning clouds
C3/D7F0:	22D7CED4	JSL $D4CED7    ; Init registers
C3/D7F4:	2087E4  	JSR $E487      ; Upload GFX, map
C3/D7F7:	2076E3  	JSR $E376      ; Reset M7 vars
C3/D7FA:	228FCBD4	JSL $D4CB8F    ; HDMA: Matrices
C3/D7FE:	20C3D6  	JSR $D6C3      ; Load OBJ colors
C3/D801:	20E0E0  	JSR $E0E0      ; Make text black
C3/D804:	A00002  	LDY #$0200     ; Vertical angle
C3/D807:	84C7    	STY $C7        ; Set for clouds
C3/D809:	A000F0  	LDY #$F000     ; Base divisor
C3/D80C:	84C5    	STY $C5        ; Set matrices'
C3/D80E:	2022ED  	JSR $ED22      ; Make matrix tbl
C3/D811:	20BFE2  	JSR $E2BF      ; Useless...
C3/D814:	20F7E0  	JSR $E0F7      ; Load cloud colors
C3/D817:	2024E2  	JSR $E224      ; Queue M7 handler
C3/D81A:	60      	RTS

03: Wait before fading screen
C3/D81B:	A420    	LDY $20        ; Delay expired?
C3/D81D:	D002    	BNE $D821      ; Exit if not
C3/D81F:	6426    	STZ $26        ; Next: Fade-out
C3/D821:	60      	RTS

04: Show spinning clouds
C3/D822:	20F0D7  	JSR $D7F0      ; Load map, etc.
C3/D825:	A00080  	LDY #$8000     ; Vertical angle
C3/D828:	84C7    	STY $C7        ; Set for clouds
C3/D82A:	A00080  	LDY #$8000     ; Base divisor
C3/D82D:	84C5    	STY $C5        ; Set matrices'
C3/D82F:	2022ED  	JSR $ED22      ; Make matrix tbl
C3/D832:	20BFE2  	JSR $E2BF      ; Useless...
C3/D835:	A07800  	LDY #$0078     ; Frames: 120
C3/D838:	8420    	STY $20        ; Set fade delay
C3/D83A:	A0328B  	LDY #$8B32     ; Anim ptr LBs
C3/D83D:	A9C2    	LDA #$C2       ; Anim ptr HB
C3/D83F:	20A9E1  	JSR $E1A9      ; Queue cloud anim
C3/D842:	A903    	LDA #$03       ; C3/D81B
C3/D844:	8526    	STA $26        ; Next: Fade-out
C3/D846:	4CDED5  	JMP $D5DE      ; Queue fade-in

0C: Start boat scene
C3/D849:	22D7CED4	JSL $D4CED7    ; Init registers
C3/D84D:	200ED5  	JSR $D50E      ; Color math: BG1
C3/D850:	200FE5  	JSR $E50F      ; Upload GFX, map
C3/D853:	2076E3  	JSR $E376      ; Reset M7 vars
C3/D856:	228FCBD4	JSL $D4CB8F    ; HDMA: Matrices
C3/D85A:	A00010  	LDY #$1000     ; Base divisor
C3/D85D:	84C5    	STY $C5        ; Set matrices'
C3/D85F:	20E0E0  	JSR $E0E0      ; Make text black
C3/D862:	20F7E0  	JSR $E0F7      ; Load BG1 colors
C3/D865:	20C3D6  	JSR $D6C3      ; Load OBJ colors
C3/D868:	A0C98A  	LDY #$8AC9     ; Anim ptr LBs
C3/D86B:	A9C2    	LDA #$C2       ; Anim ptr HB
C3/D86D:	20A9E1  	JSR $E1A9      ; Queue sea anim
C3/D870:	2042DA  	JSR $DA42      ; Create birds
C3/D873:	20F4E8  	JSR $E8F4      ; Build text OAM
C3/D876:	A400    	LDY $00        ; Scene timer: 0
C3/D878:	84CF    	STY $CF        ; Set for text
C3/D87A:	A902    	LDA #$02       ; Min slot: 16
C3/D87C:	A07EE7  	LDY #$E77E     ; C3/E77E
C3/D87F:	20DE11  	JSR $11DE      ; Queue credits
C3/D882:	2024E2  	JSR $E224      ; Queue M7 handler
C3/D885:	A03804  	LDY #$0438     ; Delay: 1080
C3/D888:	8420    	STY $20        ; Set boat OBJ's
C3/D88A:	E626    	INC $26        ; Next: C3/D88F
C3/D88C:	4CDED5  	JMP $D5DE      ; Queue fade-in

0D: Show boat sprite
C3/D88F:	A420    	LDY $20        ; Delay expired?
C3/D891:	D00A    	BNE $D89D      ; Exit if not
C3/D893:	20C6D8  	JSR $D8C6      ; Create boat
C3/D896:	6426    	STZ $26        ; Next: Fade-out
C3/D898:	A0D002  	LDY #$02D0     ; Frames: 720
C3/D89B:	8420    	STY $20        ; Set fade delay
C3/D89D:	60      	RTS

Create boat sprite (unused)
C3/D89E:	200CF9  	JSR $F90C      ; Queue OAM fn
C3/D8A1:	C220    	REP #$20       ; 16-bit A
C3/D8A3:	A9ADF7  	LDA #$F7AD     ; Anim table ptr
C3/D8A6:	9FC9327E	STA $7E32C9,X  ; Set sprite's
C3/D8AA:	A9C0FF  	LDA #$FFC0     ; H-Spd: -0.25 px
C3/D8AD:	9FC9347E	STA $7E34C9,X  ; Set sprite's
C3/D8B1:	E220    	SEP #$20       ; 8-bit A
C3/D8B3:	A9CF    	LDA #$CF       ; Bank: CF
C3/D8B5:	9FCA357E	STA $7E35CA,X  ; Set ptr HB
C3/D8B9:	A9F8    	LDA #$F8       ; X: 248
C3/D8BB:	9FCA337E	STA $7E33CA,X  ; Set sprite's
C3/D8BF:	A970    	LDA #$70       ; Y: 112
C3/D8C1:	9F4A347E	STA $7E344A,X  ; Set sprite's
C3/D8C5:	60      	RTS

Create boat sprite
C3/D8C6:	200CF9  	JSR $F90C      ; Queue L-Half
C3/D8C9:	C220    	REP #$20       ; 16-bit A
C3/D8CB:	A9B9F7  	LDA #$F7B9     ; Anim table ptr
C3/D8CE:	9FC9327E	STA $7E32C9,X  ; Set L-Half's
C3/D8D2:	A9C0FF  	LDA #$FFC0     ; H-Spd: -0.25 px
C3/D8D5:	9FC9347E	STA $7E34C9,X  ; Set L-Half's
C3/D8D9:	E220    	SEP #$20       ; 8-bit A
C3/D8DB:	A9CF    	LDA #$CF       ; Bank: CF
C3/D8DD:	9FCA357E	STA $7E35CA,X  ; Set ptr HB
C3/D8E1:	A9F8    	LDA #$F8       ; X: 248
C3/D8E3:	9FCA337E	STA $7E33CA,X  ; Set L-Half's
C3/D8E7:	A950    	LDA #$50       ; Y: 80
C3/D8E9:	9F4A347E	STA $7E344A,X  ; Set L-Half's
C3/D8ED:	A901    	LDA #$01       ; Min slot: 8
C3/D8EF:	A01AD9  	LDY #$D91A     ; C3/D91A
C3/D8F2:	20DE11  	JSR $11DE      ; Queue R-Half
C3/D8F5:	C220    	REP #$20       ; 16-bit A
C3/D8F7:	A9ADF7  	LDA #$F7AD     ; Anim table ptr
C3/D8FA:	9FC9327E	STA $7E32C9,X  ; Set R-Half's
C3/D8FE:	A9C0FF  	LDA #$FFC0     ; H-Spd: -0.25 px
C3/D901:	9FC9347E	STA $7E34C9,X  ; Set R-Half's
C3/D905:	E220    	SEP #$20       ; 8-bit A
C3/D907:	A9CF    	LDA #$CF       ; Bank: CF
C3/D909:	9FCA357E	STA $7E35CA,X  ; Set ptr HB
C3/D90D:	A9F8    	LDA #$F8       ; X: 248
C3/D90F:	9FCA337E	STA $7E33CA,X  ; Set R-Half's
C3/D913:	A950    	LDA #$50       ; Y: 80
C3/D915:	9F4A347E	STA $7E344A,X  ; Set R-Half's
C3/D919:	60      	RTS

Animate boat's right half
C3/D91A:	AA      	TAX            ; Index mode
C3/D91B:	7C1ED9  	JMP ($D91E,X)  ; Handle mode

Jump table for the above
C3/D91E:	22D9    	; Initialize timers
C3/D920:	34D9    	; Sustain sprite

Mode 0: Initialize timers
C3/D922:	A62D    	LDX $2D        ; Queue index
C3/D924:	FE4936  	INC $3649,X    ; Mode +1
C3/D927:	C220    	REP #$20       ; 16-bit A
C3/D929:	A94000  	LDA #$0040     ; Frames: 64
C3/D92C:	9D4933  	STA $3349,X    ; Set show delay
C3/D92F:	E220    	SEP #$20       ; 8-bit A
C3/D931:	207112  	JSR $1271      ; Set pose timer

Mode 1: Sustain sprite
C3/D934:	A62D    	LDX $2D        ; Queue index
C3/D936:	BC4933  	LDY $3349,X    ; Delay expired?
C3/D939:	D005    	BNE $D940      ; Branch if not
C3/D93B:	2010EE  	JSR $EE10      ; Scroll & OAM
C3/D93E:	38      	SEC            ; Set to requeue
C3/D93F:	60      	RTS            ; Exit
C3/D940:	2069DF  	JSR $DF69      ; Delay -1
C3/D943:	38      	SEC            ; Set to requeue
C3/D944:	60      	RTS

10: Start skimming airship scene
C3/D945:	22D7CED4	JSL $D4CED7    ; Init registers
C3/D949:	200ED5  	JSR $D50E      ; Color math: BG1
C3/D94C:	203FE5  	JSR $E53F      ; Upload GFX, map
C3/D94F:	20ECD9  	JSR $D9EC      ; Get sky; init M7
C3/D952:	2037E3  	JSR $E337      ; Queue gradient
C3/D955:	201AE3  	JSR $E31A      ; HDMA: Color math
C3/D958:	20C3D6  	JSR $D6C3      ; Load OBJ colors
C3/D95B:	A02800  	LDY #$0028     ; Y: 40
C3/D95E:	843B    	STY $3B        ; Set BG2 Y-Pos
C3/D960:	A06DFF  	LDY #$FF6D     ; Mod index: 109
C3/D963:	84C3    	STY $C3        ; Set matrices'
C3/D965:	A04C03  	LDY #$034C     ; Vertical angle
C3/D968:	84C7    	STY $C7        ; Set for sea
C3/D96A:	A000FD  	LDY #$FD00     ; Base divisor
C3/D96D:	84C5    	STY $C5        ; Set matrices'
C3/D96F:	2022ED  	JSR $ED22      ; Make matrix tbl
C3/D972:	20BFE2  	JSR $E2BF      ; Useless...
C3/D975:	2078DA  	JSR $DA78      ; Create birds
C3/D978:	A902    	LDA #$02       ; Min slot: 16
C3/D97A:	A041DB  	LDY #$DB41     ; C3/DB41
C3/D97D:	20DE11  	JSR $11DE      ; Queue airship
C3/D980:	C220    	REP #$20       ; 16-bit A
C3/D982:	A9A18B  	LDA #$8BA1     ; Anim table ptr
C3/D985:	9FC9327E	STA $7E32C9,X  ; Set airship's
C3/D989:	E220    	SEP #$20       ; 8-bit A
C3/D98B:	A9C2    	LDA #$C2       ; Bank: C2
C3/D98D:	9FCA357E	STA $7E35CA,X  ; Set ptr HB
C3/D991:	A978    	LDA #$78       ; X: 120
C3/D993:	9FCA337E	STA $7E33CA,X  ; C3/DB56...
C3/D997:	A958    	LDA #$58       ; Base Y/2: 88
C3/D999:	9F4A347E	STA $7E344A,X  ; C3/DB5B...
C3/D99D:	200CF9  	JSR $F90C      ; Queue shadow
C3/D9A0:	C220    	REP #$20       ; 16-bit A
C3/D9A2:	A9DC8B  	LDA #$8BDC     ; Anim table ptr
C3/D9A5:	9FC9327E	STA $7E32C9,X  ; Set shadow's
C3/D9A9:	E220    	SEP #$20       ; 8-bit A
C3/D9AB:	A9C2    	LDA #$C2       ; Bank: C2
C3/D9AD:	9FCA357E	STA $7E35CA,X  ; Set ptr HB
C3/D9B1:	A980    	LDA #$80       ; X: 128
C3/D9B3:	9FCA337E	STA $7E33CA,X  ; Set shadow's
C3/D9B7:	A980    	LDA #$80       ; Y: 128
C3/D9B9:	9F4A347E	STA $7E344A,X  ; Set shadow's
C3/D9BD:	20F7E0  	JSR $E0F7      ; Load sea colors
C3/D9C0:	200AE9  	JSR $E90A      ; Build text OAM
C3/D9C3:	A400    	LDY $00        ; Scene timer: 0
C3/D9C5:	84CF    	STY $CF        ; Set for text
C3/D9C7:	A902    	LDA #$02       ; Min slot: 16
C3/D9C9:	A0AEE7  	LDY #$E7AE     ; C3/E7AE
C3/D9CC:	20DE11  	JSR $11DE      ; Queue credits
C3/D9CF:	A0268B  	LDY #$8B26     ; Anim ptr LBs
C3/D9D2:	A9C2    	LDA #$C2       ; Anim ptr HB
C3/D9D4:	20A9E1  	JSR $E1A9      ; Queue sea anim
C3/D9D7:	A903    	LDA #$03       ; Min slot: 24
C3/D9D9:	A01DDA  	LDY #$DA1D     ; C3/DA1D
C3/D9DC:	20DE11  	JSR $11DE      ; Set to pan sky
C3/D9DF:	2024E2  	JSR $E224      ; Queue M7 handler
C3/D9E2:	E626    	INC $26        ; Next: Late bird
C3/D9E4:	A0B004  	LDY #$04B0     ; Frames: 1200
C3/D9E7:	8420    	STY $20        ; Set bird's delay
C3/D9E9:	4CDED5  	JMP $D5DE      ; Queue fade-in

Load cloudy sky graphics data, exclude sky from Mode 7
C3/D9EC:	2076E3  	JSR $E376      ; Reset M7 vars
C3/D9EF:	2038E4  	JSR $E438      ; Load GFX, map
C3/D9F2:	20F6E2  	JSR $E2F6      ; Set up M7 HDMA
C3/D9F5:	20E0E0  	JSR $E0E0      ; Make text black
C3/D9F8:	4CFBD9  	JMP $D9FB      ; ...
C3/D9FB:	A9C2    	LDA #$C2       ; Source HB
C3/D9FD:	A04930  	LDY #$3049     ; To BG pal 0
C3/DA00:	A23495  	LDX #$9534     ; Source LBs
C3/DA03:	20F90F  	JSR $0FF9      ; Load sky colors
C3/DA06:	60      	RTS

11: Show swooping bird
C3/DA07:	A420    	LDY $20        ; Delay expired?
C3/DA09:	D011    	BNE $DA1C      ; Exit if not
C3/DA0B:	A903    	LDA #$03       ; C3/D81B
C3/DA0D:	8526    	STA $26        ; Next: Fade-out
C3/DA0F:	A00807  	LDY #$0708     ; Frames: 1800
C3/DA12:	8420    	STY $20        ; Set fade delay
C3/DA14:	A901    	LDA #$01       ; Min slot: 8
C3/DA16:	A0F4DB  	LDY #$DBF4     ; C3/DBF4
C3/DA19:	20DE11  	JSR $11DE      ; Queue bird OAM
C3/DA1C:	60      	RTS

Scroll sky eastward
C3/DA1D:	A523    	LDA $23        ; NMI count
C3/DA1F:	2901    	AND #$01       ; Odd value?
C3/DA21:	D006    	BNE $DA29      ; Exit if so
C3/DA23:	C220    	REP #$20       ; 16-bit A
C3/DA25:	C639    	DEC $39        ; BG2 camera -1
C3/DA27:	E220    	SEP #$20       ; 8-bit A
C3/DA29:	38      	SEC            ; Set to requeue
C3/DA2A:	60      	RTS

Scroll sky westward
C3/DA2B:	A523    	LDA $23        ; NMI count
C3/DA2D:	2901    	AND #$01       ; Odd value?
C3/DA2F:	D006    	BNE $DA37      ; Exit if so
C3/DA31:	C220    	REP #$20       ; 16-bit A
C3/DA33:	E639    	INC $39        ; BG2 camera +1
C3/DA35:	E220    	SEP #$20       ; 8-bit A
C3/DA37:	38      	SEC            ; Set to requeue
C3/DA38:	60      	RTS

12-13: Return to event script after delay (unused variant)
C3/DA39:	A420    	LDY $20        ; Delay expired?
C3/DA3B:	D004    	BNE $DA41      ; Exit if not
C3/DA3D:	A9FF    	LDA #$FF       ; Null value
C3/DA3F:	8526    	STA $26        ; Next: Exit
C3/DA41:	60      	RTS

Create birds for boat scene
C3/DA42:	A600    	LDX $00        ; ROM index: 0
C3/DA44:	DA      	PHX            ; Save ROM index
C3/DA45:	20DADA  	JSR $DADA      ; Queue anim fn
C3/DA48:	9B      	TXY            ; Queue index
C3/DA49:	FA      	PLX            ; ROM index
C3/DA4A:	8B      	PHB            ; Save DB
C3/DA4B:	A97E    	LDA #$7E       ; Bank: 7E
C3/DA4D:	48      	PHA            ; Put on stack
C3/DA4E:	AB      	PLB            ; Set DB to 7E
C3/DA4F:	C220    	REP #$20       ; 16-bit A
C3/DA51:	BF65F7CF	LDA $CFF765,X  ; Anim table ptr
C3/DA55:	E8      	INX            ; ROM index +1
C3/DA56:	E8      	INX            ; ROM index +1
C3/DA57:	99C932  	STA $32C9,Y    ; Set bird's
C3/DA5A:	E220    	SEP #$20       ; 8-bit A
C3/DA5C:	BF65F7CF	LDA $CFF765,X  ; Base X / 2
C3/DA60:	E8      	INX            ; ROM index +1
C3/DA61:	99CA34  	STA $34CA,Y    ; Set bird's
C3/DA64:	BF65F7CF	LDA $CFF765,X  ; Base Y
C3/DA68:	E8      	INX            ; ROM index +1
C3/DA69:	994A34  	STA $344A,Y    ; Set bird's
C3/DA6C:	A901    	LDA #$01       ; Pans with BG1
C3/DA6E:	994A36  	STA $364A,Y    ; Set OBJ flags
C3/DA71:	AB      	PLB            ; Restore DB
C3/DA72:	E01800  	CPX #$0018     ; Done 6 birds?
C3/DA75:	D0CD    	BNE $DA44      ; Loop if not
C3/DA77:	60      	RTS

Create oscillating birds around skimming airship
C3/DA78:	A600    	LDX $00        ; ROM index: 0
C3/DA7A:	DA      	PHX            ; Save ROM index
C3/DA7B:	20DADA  	JSR $DADA      ; Queue anim fn
C3/DA7E:	9B      	TXY            ; Queue index
C3/DA7F:	FA      	PLX            ; ROM index
C3/DA80:	8B      	PHB            ; Save DB
C3/DA81:	A97E    	LDA #$7E       ; Bank: 7E
C3/DA83:	48      	PHA            ; Put on stack
C3/DA84:	AB      	PLB            ; Set DB to 7E
C3/DA85:	C220    	REP #$20       ; 16-bit A
C3/DA87:	BF7DF7CF	LDA $CFF77D,X  ; Anim table ptr
C3/DA8B:	E8      	INX            ; ROM index +1
C3/DA8C:	E8      	INX            ; ROM index +1
C3/DA8D:	99C932  	STA $32C9,Y    ; Set bird's
C3/DA90:	E220    	SEP #$20       ; 8-bit A
C3/DA92:	BF7DF7CF	LDA $CFF77D,X  ; Base X / 2
C3/DA96:	E8      	INX            ; ROM index +1
C3/DA97:	99CA34  	STA $34CA,Y    ; Set bird's
C3/DA9A:	BF7DF7CF	LDA $CFF77D,X  ; Base Y
C3/DA9E:	E8      	INX            ; ROM index +1
C3/DA9F:	994A34  	STA $344A,Y    ; Set bird's
C3/DAA2:	AB      	PLB            ; Restore DB
C3/DAA3:	E01800  	CPX #$0018     ; Done 6 birds?
C3/DAA6:	D0D2    	BNE $DA7A      ; Loop if not
C3/DAA8:	60      	RTS

Create birds above grassfield
C3/DAA9:	A600    	LDX $00        ; ROM index: 0
C3/DAAB:	DA      	PHX            ; Save ROM index
C3/DAAC:	20DADA  	JSR $DADA      ; Queue anim fn
C3/DAAF:	9B      	TXY            ; Queue index
C3/DAB0:	FA      	PLX            ; ROM index
C3/DAB1:	8B      	PHB            ; Save DB
C3/DAB2:	A97E    	LDA #$7E       ; Bank: 7E
C3/DAB4:	48      	PHA            ; Put on stack
C3/DAB5:	AB      	PLB            ; Set DB to 7E
C3/DAB6:	C220    	REP #$20       ; 16-bit A
C3/DAB8:	BF95F7CF	LDA $CFF795,X  ; Anim table ptr
C3/DABC:	E8      	INX            ; ROM index +1
C3/DABD:	E8      	INX            ; ROM index +1
C3/DABE:	99C932  	STA $32C9,Y    ; Set bird's
C3/DAC1:	E220    	SEP #$20       ; 8-bit A
C3/DAC3:	BF95F7CF	LDA $CFF795,X  ; Base X / 2
C3/DAC7:	E8      	INX            ; ROM index +1
C3/DAC8:	99CA34  	STA $34CA,Y    ; Set bird's
C3/DACB:	BF95F7CF	LDA $CFF795,X  ; Base Y
C3/DACF:	E8      	INX            ; ROM index +1
C3/DAD0:	994A34  	STA $344A,Y    ; Set bird's
C3/DAD3:	AB      	PLB            ; Restore DB
C3/DAD4:	E01800  	CPX #$0018     ; Done 6 birds?
C3/DAD7:	D0D2    	BNE $DAAB      ; Loop if not
C3/DAD9:	60      	RTS

Queue oscillating bird
C3/DADA:	A902    	LDA #$02       ; Min slot: 16
C3/DADC:	A0E3DA  	LDY #$DAE3     ; C3/DAE3
C3/DADF:	20DE11  	JSR $11DE      ; Queue anim fn
C3/DAE2:	60      	RTS

Animate oscillating bird
C3/DAE3:	AA      	TAX            ; Index mode
C3/DAE4:	7CE7DA  	JMP ($DAE7,X)  ; Handle mode

Jump table for the above
C3/DAE7:	EBDA    	; Initialize data
C3/DAE9:	02DB    	; Sustain sprite

Mode 0: Initialize data
C3/DAEB:	A62D    	LDX $2D        ; Queue index
C3/DAED:	FE4936  	INC $3649,X    ; Mode +1
C3/DAF0:	9E4A33  	STZ $334A,X    ; X-Mod index HB
C3/DAF3:	BFE3DAC3	LDA $C3DAE3,X  ; X-Mod index LB
C3/DAF7:	9D4933  	STA $3349,X    ; Set bird's
C3/DAFA:	A9CF    	LDA #$CF       ; Bank: CF
C3/DAFC:	9DCA35  	STA $35CA,X    ; Set ptr HB
C3/DAFF:	207112  	JSR $1271      ; Set pose timer

Mode 1: Sustain sprite
C3/DB02:	A62D    	LDX $2D        ; Queue index
C3/DB04:	200FDB  	JSR $DB0F      ; Init X position
C3/DB07:	FE4933  	INC $3349,X    ; X-Mod index +1
C3/DB0A:	2010EE  	JSR $EE10      ; Scroll & OAM
C3/DB0D:	38      	SEC            ; Set to requeue
C3/DB0E:	60      	RTS

Update bird's back-and-forth motion (range: -8 to +7)
C3/DB0F:	C220    	REP #$20       ; 16-bit A
C3/DB11:	BD4933  	LDA $3349,X    ; X-Mod index
C3/DB14:	20C6ED  	JSR $EDC6      ; Fract X mod
C3/DB17:	85EB    	STA $EB        ; Set original
C3/DB19:	85E0    	STA $E0        ; Set current
C3/DB1B:	A5E0    	LDA $E0        ; Shift right?
C3/DB1D:	1004    	BPL $DB23      ; Branch if so
C3/DB1F:	49FFFF  	EOR #$FFFF     ; Invert value
C3/DB22:	1A      	INC A          ; Add 1
C3/DB23:	85E0    	STA $E0        ; Save changes
C3/DB25:	A5EB    	LDA $EB        ; Shift right?
C3/DB27:	1009    	BPL $DB32      ; Branch if so
C3/DB29:	20ACDB  	JSR $DBAC      ; Modifier / 16
C3/DB2C:	49FFFF  	EOR #$FFFF     ; Invert value
C3/DB2F:	1A      	INC A          ; Add 1
C3/DB30:	8003    	BRA $DB35      ; Skip a line
C3/DB32:	20ACDB  	JSR $DBAC      ; Modifier / 16
C3/DB35:	A62D    	LDX $2D        ; Queue index
C3/DB37:	18      	CLC            ; Prepare ADC
C3/DB38:	7DC934  	ADC $34C9,X    ; Add base X/2
C3/DB3B:	9DC933  	STA $33C9,X    ; Init bird's X
C3/DB3E:	E220    	SEP #$20       ; 8-bit A
C3/DB40:	60      	RTS

Animate skimming airship
C3/DB41:	AA      	TAX            ; Index mode
C3/DB42:	7C45DB  	JMP ($DB45,X)  ; Handle mode

Jump table
C3/DB45:	49DB    	; Initialize data
C3/DB47:	61DB    	; Sustain sprite

Mode 0: Initialize data
C3/DB49:	A62D    	LDX $2D        ; Queue index
C3/DB4B:	FE4936  	INC $3649,X    ; Mode +1
C3/DB4E:	9E4A33  	STZ $334A,X    ; Anim timer HB
C3/DB51:	9E4933  	STZ $3349,X    ; Anim timer LB
C3/DB54:	A978    	LDA #$78       ; X: 120
C3/DB56:	9DCA33  	STA $33CA,X    ; Set sprite's
C3/DB59:	A920    	LDA #$20       ; Base Y/2: 32
C3/DB5B:	9D4A35  	STA $354A,X    ; Set sprite's
C3/DB5E:	207112  	JSR $1271      ; Set pose timer

Mode 1: Sustain sprite
C3/DB61:	A62D    	LDX $2D        ; Queue index
C3/DB63:	207ADB  	JSR $DB7A      ; Init Y position
C3/DB66:	A62D    	LDX $2D        ; Queue index
C3/DB68:	FE4933  	INC $3349,X    ; Anim timer +1
C3/DB6B:	BD4933  	LDA $3349,X    ; Anim timer
C3/DB6E:	C938    	CMP #$38       ; Within 56-255?
C3/DB70:	B003    	BCS $DB75      ; Branch if so
C3/DB72:	20B3DB  	JSR $DBB3      ; Create spray
C3/DB75:	2010EE  	JSR $EE10      ; Scroll & OAM
C3/DB78:	38      	SEC            ; Set to requeue
C3/DB79:	60      	RTS

Update airship's up-and-down motion (range: -8 to +7)
C3/DB7A:	C220    	REP #$20       ; 16-bit A
C3/DB7C:	BD4933  	LDA $3349,X    ; Anim timer
C3/DB7F:	20CAED  	JSR $EDCA      ; Fract Y mod
C3/DB82:	85EB    	STA $EB        ; Set original
C3/DB84:	85E0    	STA $E0        ; Set current
C3/DB86:	A5E0    	LDA $E0        ; Shift down?
C3/DB88:	1004    	BPL $DB8E      ; Branch if so
C3/DB8A:	49FFFF  	EOR #$FFFF     ; Invert value
C3/DB8D:	1A      	INC A          ; Add 1
C3/DB8E:	85E0    	STA $E0        ; Save changes
C3/DB90:	A5EB    	LDA $EB        ; Shift down?
C3/DB92:	1009    	BPL $DB9D      ; Branch if so
C3/DB94:	20ACDB  	JSR $DBAC      ; Modifier / 16
C3/DB97:	49FFFF  	EOR #$FFFF     ; Invert value
C3/DB9A:	1A      	INC A          ; Add 1
C3/DB9B:	8003    	BRA $DBA0      ; Skip a line
C3/DB9D:	20ACDB  	JSR $DBAC      ; Modifier / 16
C3/DBA0:	A62D    	LDX $2D        ; Queue index
C3/DBA2:	18      	CLC            ; Prepare ADC
C3/DBA3:	7D4935  	ADC $3549,X    ; Add base Y
C3/DBA6:	9D4934  	STA $3449,X    ; Init ship's Y
C3/DBA9:	E220    	SEP #$20       ; 8-bit A
C3/DBAB:	60      	RTS

Divide sprite's position modifier by 16
C3/DBAC:	A5E0    	LDA $E0        ; Y modifier
C3/DBAE:	4A      	LSR A          ; 2
C3/DBAF:	4A      	LSR A          ; 4
C3/DBB0:	4A      	LSR A          ; 8
C3/DBB1:	4A      	LSR A          ; 16
C3/DBB2:	60      	RTS

Create water spray
C3/DBB3:	A523    	LDA $23        ; NMI count
C3/DBB5:	2903    	AND #$03       ; Now 0-3
C3/DBB7:	D03A    	BNE $DBF3      ; Exit if 1-3
C3/DBB9:	8B      	PHB            ; Save DB
C3/DBBA:	A900    	LDA #$00       ; ...
C3/DBBC:	48      	PHA            ; ...
C3/DBBD:	AB      	PLB            ; ...
C3/DBBE:	20B8D7  	JSR $D7B8      ; Queue anim fn
C3/DBC1:	C220    	REP #$20       ; 16-bit A
C3/DBC3:	A9FB8C  	LDA #$8CFB     ; Anim table ptr
C3/DBC6:	9FC9327E	STA $7E32C9,X  ; Set sprite's
C3/DBCA:	A90001  	LDA #$0100     ; H-Spd: +1 px
C3/DBCD:	9FC9347E	STA $7E34C9,X  ; Set sprite's
C3/DBD1:	A980FF  	LDA #$FF80     ; V-Spd: -0.5 px
C3/DBD4:	9F49357E	STA $7E3549,X  ; Set sprite's
C3/DBD8:	E220    	SEP #$20       ; 8-bit A
C3/DBDA:	A918    	LDA #$18       ; Frames: 24
C3/DBDC:	9F49337E	STA $7E3349,X  ; Set hide delay
C3/DBE0:	A9C2    	LDA #$C2       ; Bank: C2
C3/DBE2:	9FCA357E	STA $7E35CA,X  ; Set ptr HB
C3/DBE6:	A97E    	LDA #$7E       ; X: 126
C3/DBE8:	9FCA337E	STA $7E33CA,X  ; Set sprite's
C3/DBEC:	A97C    	LDA #$7C       ; Y: 124
C3/DBEE:	9F4A347E	STA $7E344A,X  ; Set sprite's
C3/DBF2:	AB      	PLB            ; Restore DB
C3/DBF3:	60      	RTS

Animate swooping bird
C3/DBF4:	AA      	TAX            ; Index mode
C3/DBF5:	7CF8DB  	JMP ($DBF8,X)  ; Handle mode

Jump table for the above
C3/DBF8:	FCDB    	; Initialize sprite
C3/DBFA:	23DC    	; Sustain sprite

Mode 0: Initialize sprite
C3/DBFC:	A62D    	LDX $2D        ; Queue index
C3/DBFE:	FE4936  	INC $3649,X    ; Mode +1
C3/DC01:	A9CF    	LDA #$CF       ; Anim ptr HB
C3/DC03:	9DCA35  	STA $35CA,X    ; Set sprite's
C3/DC06:	C220    	REP #$20       ; 16-bit A
C3/DC08:	A922F7  	LDA #$F722     ; Anim ptr LBs
C3/DC0B:	9DC932  	STA $32C9,X    ; Set sprite's
C3/DC0E:	A91000  	LDA #$0010     ; Pos index: 16
C3/DC11:	9D4933  	STA $3349,X    ; Set sprite's
C3/DC14:	E220    	SEP #$20       ; 8-bit A
C3/DC16:	A900    	LDA #$00       ; Base X HB: 0
C3/DC18:	9DCA34  	STA $34CA,X    ; Set sprite's
C3/DC1B:	A900    	LDA #$00       ; Base Y HB: 0
C3/DC1D:	9D4A35  	STA $354A,X    ; Set sprite's
C3/DC20:	207112  	JSR $1271      ; Set pose timer

Mode 1: Sustain sprite
C3/DC23:	A62D    	LDX $2D        ; Queue index
C3/DC25:	BDCA33  	LDA $33CA,X    ; X position
C3/DC28:	C908    	CMP #$08       ; Under 8?
C3/DC2A:	B002    	BCS $DC2E      ; Display if not
C3/DC2C:	18      	CLC            ; Set to dequeue
C3/DC2D:	60      	RTS

Fork: Set X position
C3/DC2E:	C220    	REP #$20       ; 16-bit A
C3/DC30:	BD4933  	LDA $3349,X    ; Position index
C3/DC33:	20C6ED  	JSR $EDC6      ; Fractional X
C3/DC36:	85EB    	STA $EB        ; ...
C3/DC38:	85E0    	STA $E0        ; ...
C3/DC3A:	A5E0    	LDA $E0        ; ...
C3/DC3C:	1004    	BPL $DC42      ; ...
C3/DC3E:	49FFFF  	EOR #$FFFF     ; ...
C3/DC41:	1A      	INC A          ; ...
C3/DC42:	85E0    	STA $E0        ; ...
C3/DC44:	A5EB    	LDA $EB        ; ...
C3/DC46:	1009    	BPL $DC51      ; ...
C3/DC48:	A5E0    	LDA $E0        ; ...
C3/DC4A:	0A      	ASL A          ; ...
C3/DC4B:	49FFFF  	EOR #$FFFF     ; ...
C3/DC4E:	1A      	INC A          ; ...
C3/DC4F:	8003    	BRA $DC54      ; ...
C3/DC51:	A5E0    	LDA $E0        ; ...
C3/DC53:	0A      	ASL A          ; Double it
C3/DC54:	A62D    	LDX $2D        ; Queue index
C3/DC56:	18      	CLC            ; Prepare ADC
C3/DC57:	7DC934  	ADC $34C9,X    ; Add base X
C3/DC5A:	9DC933  	STA $33C9,X    ; Set bird's X

Fork: Set Y position
C3/DC5D:	BD4933  	LDA $3349,X    ; Position index
C3/DC60:	20CAED  	JSR $EDCA      ; Fractional Y
C3/DC63:	85EB    	STA $EB        ; ...
C3/DC65:	85E0    	STA $E0        ; ...
C3/DC67:	A5E0    	LDA $E0        ; ...
C3/DC69:	1004    	BPL $DC6F      ; ...
C3/DC6B:	49FFFF  	EOR #$FFFF     ; ...
C3/DC6E:	1A      	INC A          ; ...
C3/DC6F:	85E0    	STA $E0        ; ...
C3/DC71:	A5EB    	LDA $EB        ; ...
C3/DC73:	1008    	BPL $DC7D      ; ...
C3/DC75:	A5E0    	LDA $E0        ; ...
C3/DC77:	49FFFF  	EOR #$FFFF     ; ...
C3/DC7A:	1A      	INC A          ; ...
C3/DC7B:	8002    	BRA $DC7F      ; ...
C3/DC7D:	A5E0    	LDA $E0        ; ...
C3/DC7F:	A62D    	LDX $2D        ; Queue index
C3/DC81:	18      	CLC            ; Prepare ADC
C3/DC82:	7D4935  	ADC $3549,X    ; Add base Y
C3/DC85:	9D4934  	STA $3449,X    ; Set bird's Y
C3/DC88:	FE4933  	INC $3349,X    ; Pos index +1
C3/DC8B:	E220    	SEP #$20       ; ...
C3/DC8D:	208C12  	JSR $128C      ; Define OAM
C3/DC90:	38      	SEC            ; Set to requeue
C3/DC91:	60      	RTS

14: Start frontview airship scene
C3/DC92:	22D7CED4	JSL $D4CED7    ; Init registers
C3/DC96:	200ED5  	JSR $D50E      ; Color math: BG1
C3/DC99:	22D8E4C3	JSL $C3E4D8    ; Upload GFX, map
C3/DC9D:	20ECD9  	JSR $D9EC      ; Get sky; init M7
C3/DCA0:	2037E3  	JSR $E337      ; Queue gradient
C3/DCA3:	201AE3  	JSR $E31A      ; HDMA: Color math
C3/DCA6:	20C3D6  	JSR $D6C3      ; Load OBJ colors
C3/DCA9:	A02800  	LDY #$0028     ; Y: 40
C3/DCAC:	843B    	STY $3B        ; Set BG2 Y-Pos
C3/DCAE:	A0CDFF  	LDY #$FFCD     ; Mod index: 205
C3/DCB1:	84C3    	STY $C3        ; Set matrices'
C3/DCB3:	A00B03  	LDY #$030B     ; Vertical angle
C3/DCB6:	84C7    	STY $C7        ; Set for field
C3/DCB8:	A000F0  	LDY #$F000     ; Base divisor
C3/DCBB:	84C5    	STY $C5        ; Set matrices'
C3/DCBD:	2022ED  	JSR $ED22      ; Make matrix tbl
C3/DCC0:	20BFE2  	JSR $E2BF      ; Useless...
C3/DCC3:	20F7E0  	JSR $E0F7      ; Load BG1 colors
C3/DCC6:	20A9DA  	JSR $DAA9      ; Create birds
C3/DCC9:	2060DF  	JSR $DF60      ; Queue airship
C3/DCCC:	C220    	REP #$20       ; 16-bit A
C3/DCCE:	A9158C  	LDA #$8C15     ; Anim table ptr
C3/DCD1:	9FC9327E	STA $7E32C9,X  ; Set airship's
C3/DCD5:	E220    	SEP #$20       ; 8-bit A
C3/DCD7:	A9C2    	LDA #$C2       ; Bank: C2
C3/DCD9:	9FCA357E	STA $7E35CA,X  ; Set ptr HB
C3/DCDD:	A978    	LDA #$78       ; X: 120
C3/DCDF:	9FCA337E	STA $7E33CA,X  ; Set airship's
C3/DCE3:	A958    	LDA #$58       ; Base Y: 88
C3/DCE5:	9F4A357E	STA $7E354A,X  ; Set airship's
C3/DCE9:	A0298B  	LDY #$8B29     ; Anim ptr LBs
C3/DCEC:	A9C2    	LDA #$C2       ; Anim ptr HB
C3/DCEE:	20A9E1  	JSR $E1A9      ; Queue field anim
C3/DCF1:	2020E9  	JSR $E920      ; Build text OAM
C3/DCF4:	A400    	LDY $00        ; Scene timer: 0
C3/DCF6:	84CF    	STY $CF        ; Set for text
C3/DCF8:	A902    	LDA #$02       ; Min slot: 16
C3/DCFA:	A0FCE7  	LDY #$E7FC     ; C3/E7FC
C3/DCFD:	20DE11  	JSR $11DE      ; Queue credits
C3/DD00:	A903    	LDA #$03       ; Min slot: 24
C3/DD02:	A02BDA  	LDY #$DA2B     ; C3/DA2B
C3/DD05:	20DE11  	JSR $11DE      ; Set to pan sky
C3/DD08:	2024E2  	JSR $E224      ; Queue M7 handler
C3/DD0B:	E626    	INC $26        ; Next: Late flock
C3/DD0D:	A0B004  	LDY #$04B0     ; Frames: 1200
C3/DD10:	8420    	STY $20        ; Set flock delay
C3/DD12:	4CDED5  	JMP $D5DE      ; Queue fade-in

Queue bird from late flock
C3/DD15:	A902    	LDA #$02       ; Min slot: 16
C3/DD17:	A068DD  	LDY #$DD68     ; C3/DD68
C3/DD1A:	20DE11  	JSR $11DE      ; Queue anim fn
C3/DD1D:	60      	RTS

15: Show late bird flock
C3/DD1E:	A420    	LDY $20        ; Delay expired?
C3/DD20:	D045    	BNE $DD67      ; Exit if not
C3/DD22:	A903    	LDA #$03       ; C3/D81B
C3/DD24:	8526    	STA $26        ; Next: Fade-out
C3/DD26:	A00807  	LDY #$0708     ; Frames: 1800
C3/DD29:	8420    	STY $20        ; Set fade delay
C3/DD2B:	2015DD  	JSR $DD15      ; Queue bird 1
C3/DD2E:	A900    	LDA #$00       ; X: 0
C3/DD30:	9FCA337E	STA $7E33CA,X  ; Set for bird 1
C3/DD34:	A950    	LDA #$50       ; Y: 80
C3/DD36:	9F4A347E	STA $7E344A,X  ; Set for bird 1
C3/DD3A:	2015DD  	JSR $DD15      ; Queue bird 2
C3/DD3D:	A918    	LDA #$18       ; X: 24
C3/DD3F:	9FCA337E	STA $7E33CA,X  ; Set for bird 2
C3/DD43:	A940    	LDA #$40       ; Y: 64
C3/DD45:	9F4A347E	STA $7E344A,X  ; Set for bird 2
C3/DD49:	2015DD  	JSR $DD15      ; Queue bird 3
C3/DD4C:	A940    	LDA #$40       ; X: 64
C3/DD4E:	9FCA337E	STA $7E33CA,X  ; Set for bird 3
C3/DD52:	A968    	LDA #$68       ; Y: 104
C3/DD54:	9F4A347E	STA $7E344A,X  ; Set for bird 3
C3/DD58:	2015DD  	JSR $DD15      ; Queue bird 4
C3/DD5B:	A910    	LDA #$10       ; X: 16
C3/DD5D:	9FCA337E	STA $7E33CA,X  ; Set for bird 4
C3/DD61:	A948    	LDA #$48       ; Y: 72
C3/DD63:	9F4A347E	STA $7E344A,X  ; Set for bird 4
C3/DD67:	60      	RTS

Animate bird from late flock
C3/DD68:	AA      	TAX            ; Index mode
C3/DD69:	7C6CDD  	JMP ($DD6C,X)  ; Handle mode

Jump table for the above
C3/DD6C:	7EDD    	; Initialize data
C3/DD6E:	9DDD    	; Unused
C3/DD70:	9DDD    	; Head E after delay
C3/DD72:	9DDD    	; Head SE after delay
C3/DD74:	9DDD    	; Head SSE after delay
C3/DD76:	9DDD    	; Head SSW after delay
C3/DD78:	9DDD    	; Head SW after delay
C3/DD7A:	9DDD    	; Head SW x2 after delay
C3/DD7C:	B1DD    	; Delete if at left edge

Mode 0: Initialize data
C3/DD7E:	A62D    	LDX $2D        ; Queue index
C3/DD80:	FE4936  	INC $3649,X    ; Mode +1
C3/DD83:	C220    	REP #$20       ; 16-bit A
C3/DD85:	A9FFF6  	LDA #$F6FF     ; Anim table ptr
C3/DD88:	9DC932  	STA $32C9,X    ; Set bird's
C3/DD8B:	E220    	SEP #$20       ; 8-bit A
C3/DD8D:	A9CF    	LDA #$CF       ; Bank: CF
C3/DD8F:	9DCA35  	STA $35CA,X    ; Set ptr HB
C3/DD92:	9EC935  	STZ $35C9,X    ; Course: NE
C3/DD95:	20C1DD  	JSR $DDC1      ; Define path
C3/DD98:	A62D    	LDX $2D        ; Queue index
C3/DD9A:	207112  	JSR $1271      ; Set pose timer

Modes 1-7: Alter course
C3/DD9D:	A62D    	LDX $2D        ; Queue index
C3/DD9F:	BC4933  	LDY $3349,X    ; Mode expired?
C3/DDA2:	D005    	BNE $DDA9      ; Branch if not
C3/DDA4:	20C1DD  	JSR $DDC1      ; Alter path
C3/DDA7:	A62D    	LDX $2D        ; Queue index
C3/DDA9:	2069DF  	JSR $DF69      ; Mode timer -1
C3/DDAC:	2010EE  	JSR $EE10      ; Scroll & OAM
C3/DDAF:	38      	SEC            ; Set to requeue
C3/DDB0:	60      	RTS

Mode 8: Delete if set to wrap horizontally
C3/DDB1:	2010EE  	JSR $EE10      ; Scroll & OAM
C3/DDB4:	A62D    	LDX $2D        ; Queue index
C3/DDB6:	BDCA33  	LDA $33CA,X    ; Bird's X
C3/DDB9:	C901    	CMP #$01       ; Zero?
C3/DDBB:	B002    	BCS $DDBF      ; Maintain if not
C3/DDBD:	18      	CLC            ; Set to dequeue
C3/DDBE:	60      	RTS            ; Exit
C3/DDBF:	38      	SEC            ; Set to requeue
C3/DDC0:	60      	RTS

Alter course of bird from late flock
C3/DDC1:	A42D    	LDY $2D        ; Queue index
C3/DDC3:	BB      	TYX            ; Put it in X
C3/DDC4:	7B      	TDC            ; Clear A
C3/DDC5:	B9C935  	LDA $35C9,Y    ; Path index
C3/DDC8:	FEC935  	INC $35C9,X    ; Path Index +1
C3/DDCB:	FE4936  	INC $3649,X    ; Mode +1
C3/DDCE:	0A      	ASL A          ; Index x2
C3/DDCF:	0A      	ASL A          ; Index x4
C3/DDD0:	0A      	ASL A          ; Index x8
C3/DDD1:	C220    	REP #$20       ; 16-bit A
C3/DDD3:	AA      	TAX            ; Index it
C3/DDD4:	BFECDDC3	LDA $C3DDEC,X  ; H-Speed
C3/DDD8:	99C934  	STA $34C9,Y    ; Set bird's
C3/DDDB:	BFEEDDC3	LDA $C3DDEE,X  ; V-Speed
C3/DDDF:	994935  	STA $3549,Y    ; Set bird's
C3/DDE2:	BFF0DDC3	LDA $C3DDF0,X  ; Path timer
C3/DDE6:	994933  	STA $3349,Y    ; Set bird's
C3/DDE9:	E220    	SEP #$20       ; 8-bit A
C3/DDEB:	60      	RTS

Late bird flock's course
C3/DDEC:	2000    	; H-Speed: +0.125 px
C3/DDEE:	F0FF    	; V-Speed: -0.0625 px
C3/DDF0:	8403    	; Frames: 900
C3/DDF2:	0000    	; ...
C3/DDF4:	2000    	; H-Speed: +0.125 px
C3/DDF6:	0000    	; V-Speed: 0
C3/DDF8:	3C00    	; Frames: 60
C3/DDFA:	0000    	; ...
C3/DDFC:	2000    	; H-Speed: +0.125 px
C3/DDFE:	2000    	; V-Speed: +0.125 px
C3/DE00:	3C00    	; Frames: 60
C3/DE02:	0000    	; ...
C3/DE04:	1000    	; H-Speed: +0.0625 px
C3/DE06:	4000    	; V-Speed: +0.25 px
C3/DE08:	3C00    	; Frames: 60
C3/DE0A:	0000    	; ...
C3/DE0C:	E0FF    	; H-Speed: -0.125 px
C3/DE0E:	4000    	; V-Speed: +0.25 px
C3/DE10:	3C00    	; Frames: 60
C3/DE12:	0000    	; ...
C3/DE14:	C0FF    	; H-Speed: -0.25 px
C3/DE16:	4000    	; V-Speed: +0.25 px
C3/DE18:	B400    	; Frames: 180
C3/DE1A:	0000    	; ...
C3/DE1C:	80FF    	; H-Speed: -0.5 px
C3/DE1E:	8000    	; V-Speed: +0.5 px
C3/DE20:	B400    	; Frames: 180
C3/DE22:	0000    	; ...

18: Start aerial-view plains scene
C3/DE24:	22D7CED4	JSL $D4CED7    ; Init registers
C3/DE28:	200ED5  	JSR $D50E      ; Color math: BG1
C3/DE2B:	22D8E4C3	JSL $C3E4D8    ; Upload GFX, map
C3/DE2F:	2076E3  	JSR $E376      ; Reset M7 vars
C3/DE32:	228FCBD4	JSL $D4CB8F    ; HDMA: Matrices
C3/DE36:	A00018  	LDY #$1800     ; Base divisor
C3/DE39:	84C5    	STY $C5        ; Set matrices'
C3/DE3B:	2022ED  	JSR $ED22      ; Make matrix tbl
C3/DE3E:	20BFE2  	JSR $E2BF      ; Useless...
C3/DE41:	20E0E0  	JSR $E0E0      ; Make text black
C3/DE44:	20F7E0  	JSR $E0F7      ; Load BG1 colors
C3/DE47:	A0EA8A  	LDY #$8AEA     ; Anim ptr LBs
C3/DE4A:	A9C2    	LDA #$C2       ; Anim ptr HB
C3/DE4C:	20A9E1  	JSR $E1A9      ; Queue field anim
C3/DE4F:	2036E9  	JSR $E936      ; Build text OAM
C3/DE52:	A400    	LDY $00        ; Scene timer: 0
C3/DE54:	84CF    	STY $CF        ; Set for text
C3/DE56:	A902    	LDA #$02       ; Min slot: 16
C3/DE58:	A04AE8  	LDY #$E84A     ; C3/E84A
C3/DE5B:	20DE11  	JSR $11DE      ; Queue credits
C3/DE5E:	2024E2  	JSR $E224      ; Queue M7 handler
C3/DE61:	A903    	LDA #$03       ; C3/D81B
C3/DE63:	8526    	STA $26        ; Next: Fade-out
C3/DE65:	A0100E  	LDY #$0E10     ; Frames: 3600
C3/DE68:	8420    	STY $20        ; Set fade delay
C3/DE6A:	4CDED5  	JMP $D5DE      ; Queue fade-in

1C: Start rearview airship scene
C3/DE6D:	22D7CED4	JSL $D4CED7    ; Init registers
C3/DE71:	22D8E4C3	JSL $C3E4D8    ; Upload GFX, map
C3/DE75:	20C8E0  	JSR $E0C8      ; Upload balloon
C3/DE78:	20ECD9  	JSR $D9EC      ; Get sky; init M7
C3/DE7B:	2037E3  	JSR $E337      ; Queue gradient
C3/DE7E:	201AE3  	JSR $E31A      ; HDMA: Color math
C3/DE81:	A00001  	LDY #$0100     ; Base divisor
C3/DE84:	84C5    	STY $C5        ; Set matrices'
C3/DE86:	A0DC02  	LDY #$02DC     ; Vertical angle
C3/DE89:	84C7    	STY $C7        ; Set for field
C3/DE8B:	2022ED  	JSR $ED22      ; Make matrix tbl
C3/DE8E:	20BFE2  	JSR $E2BF      ; Useless...
C3/DE91:	A01000  	LDY #$0010     ; Y: 16
C3/DE94:	843B    	STY $3B        ; Set BG2 Y-Pos
C3/DE96:	20E0E0  	JSR $E0E0      ; Make text black
C3/DE99:	20C3D6  	JSR $D6C3      ; Load OBJ colors
C3/DE9C:	20F7E0  	JSR $E0F7      ; Load BG1 colors
C3/DE9F:	2041E9  	JSR $E941      ; Build text OAM
C3/DEA2:	A400    	LDY $00        ; Scene timer: 0
C3/DEA4:	84CF    	STY $CF        ; Set for text
C3/DEA6:	A902    	LDA #$02       ; Min slot: 16
C3/DEA8:	A098E8  	LDY #$E898     ; C3/E898
C3/DEAB:	20DE11  	JSR $11DE      ; Queue credits
C3/DEAE:	A900    	LDA #$00       ; Min slot: 0
C3/DEB0:	A01EDF  	LDY #$DF1E     ; C3/DF1E
C3/DEB3:	20DE11  	JSR $11DE      ; Queue BG scroll
C3/DEB6:	2036DF  	JSR $DF36      ; Queue SW rotor
C3/DEB9:	A914    	LDA #$14       ; Y: 20
C3/DEBB:	9F4A357E	STA $7E354A,X  ; Set SW rotor's
C3/DEBF:	A944    	LDA #$44       ; X: 68
C3/DEC1:	9FCA337E	STA $7E33CA,X  ; Set SW rotor's
C3/DEC5:	204BDF  	JSR $DF4B      ; Queue SE rotor
C3/DEC8:	A914    	LDA #$14       ; Y: 20
C3/DECA:	9F4A357E	STA $7E354A,X  ; Set SE rotor's
C3/DECE:	A9AC    	LDA #$AC       ; X: 172
C3/DED0:	9FCA337E	STA $7E33CA,X  ; Set SE rotor's
C3/DED4:	2036DF  	JSR $DF36      ; Queue NW rotor
C3/DED7:	A9E8    	LDA #$E8       ; Y: 232
C3/DED9:	9F4A357E	STA $7E354A,X  ; Set NW rotor's
C3/DEDD:	A960    	LDA #$60       ; X: 96
C3/DEDF:	9FCA337E	STA $7E33CA,X  ; Set NW rotor's
C3/DEE3:	204BDF  	JSR $DF4B      ; Queue NE rotor
C3/DEE6:	A9E8    	LDA #$E8       ; Y: 232
C3/DEE8:	9F4A357E	STA $7E354A,X  ; Set NE rotor's
C3/DEEC:	A990    	LDA #$90       ; X: 144
C3/DEEE:	9FCA337E	STA $7E33CA,X  ; Set NE rotor's
C3/DEF2:	2060DF  	JSR $DF60      ; Queue airship
C3/DEF5:	C220    	REP #$20       ; 16-bit A
C3/DEF7:	A9508C  	LDA #$8C50     ; Anim table ptr
C3/DEFA:	9FC9327E	STA $7E32C9,X  ; Set airship's
C3/DEFE:	E220    	SEP #$20       ; 8-bit A
C3/DF00:	A9C2    	LDA #$C2       ; Bank: C2
C3/DF02:	9FCA357E	STA $7E35CA,X  ; Set ptr HB
C3/DF06:	A948    	LDA #$48       ; X: 72
C3/DF08:	9FCA337E	STA $7E33CA,X  ; Set airship's
C3/DF0C:	A9F8    	LDA #$F8       ; Y: 248
C3/DF0E:	9F4A357E	STA $7E354A,X  ; Set airship's
C3/DF12:	A903    	LDA #$03       ; C3/D81B
C3/DF14:	8526    	STA $26        ; Next: Fade-out
C3/DF16:	A0AC08  	LDY #$08AC     ; Frames: 2220
C3/DF19:	8420    	STY $20        ; Set fade delay
C3/DF1B:	4CDED5  	JMP $D5DE      ; Queue fade-in

Scroll field and sky for rearview airship scene
C3/DF1E:	A523    	LDA $23        ; NMI count
C3/DF20:	297F    	AND #$7F       ; 0 or 128?
C3/DF22:	D002    	BNE $DF26      ; Branch if not
C3/DF24:	E63B    	INC $3B        ; Shift sky up
C3/DF26:	A523    	LDA $23        ; NMI count
C3/DF28:	2901    	AND #$01       ; Odd value?
C3/DF2A:	D008    	BNE $DF34      ; Exit if so
C3/DF2C:	C220    	REP #$20       ; 16-bit A
C3/DF2E:	C6B9    	DEC $B9        ; Center Y -1
C3/DF30:	C637    	DEC $37        ; Move field down
C3/DF32:	E220    	SEP #$20       ; 8-bit A
C3/DF34:	38      	SEC            ; Set to requeue
C3/DF35:	60      	RTS

Queue NW or SW airship rotor
C3/DF36:	2060DF  	JSR $DF60      ; Queue anim fn
C3/DF39:	A9C2    	LDA #$C2       ; Bank: C2
C3/DF3B:	9FCA357E	STA $7E35CA,X  ; Set ptr HB
C3/DF3F:	C220    	REP #$20       ; 16-bit A
C3/DF41:	A92E8D  	LDA #$8D2E     ; Anim ptr LBs
C3/DF44:	9FC9327E	STA $7E32C9,X  ; Set sprite's
C3/DF48:	E220    	SEP #$20       ; 8-bit A
C3/DF4A:	60      	RTS

Queue NE or SE airship rotor
C3/DF4B:	2060DF  	JSR $DF60      ; Queue anim fn
C3/DF4E:	A9C2    	LDA #$C2       ; Bank: C2
C3/DF50:	9FCA357E	STA $7E35CA,X  ; Set ptr HB
C3/DF54:	C220    	REP #$20       ; 16-bit A
C3/DF56:	A9818D  	LDA #$8D81     ; Anim ptr LBs
C3/DF59:	9FC9327E	STA $7E32C9,X  ; Set sprite's
C3/DF5D:	E220    	SEP #$20       ; 8-bit A
C3/DF5F:	60      	RTS

Queue frontview or rearview airship or rotor
C3/DF60:	A902    	LDA #$02       ; Min slot: 16
C3/DF62:	A07CDF  	LDY #$DF7C     ; C3/DF7C
C3/DF65:	20DE11  	JSR $11DE      ; Queue OAM fn
C3/DF68:	60      	RTS

Decrease sprite's animation mode timer
C3/DF69:	A62D    	LDX $2D        ; Queue index
C3/DF6B:	C220    	REP #$20       ; 16-bit A
C3/DF6D:	DE4933  	DEC $3349,X    ; Timer -1
C3/DF70:	E220    	SEP #$20       ; 8-bit A
C3/DF72:	60      	RTS

Define sprite's animation mode timer (unused)
C3/DF73:	C220    	REP #$20       ; 16-bit A
C3/DF75:	98      	TYA            ; Get timer
C3/DF76:	9D4933  	STA $3349,X    ; Set timer
C3/DF79:	E220    	SEP #$20       ; 8-bit A
C3/DF7B:	60      	RTS

Animate frontview or rearview airship or rotor
C3/DF7C:	AA      	TAX            ; Index mode
C3/DF7D:	7C80DF  	JMP ($DF80,X)  ; Handle mode

Jump table
C3/DF80:	84DF    	; Initialize timers
C3/DF82:	8FDF    	; Sustain sprite

Mode 0: Initialize timers
C3/DF84:	A62D    	LDX $2D        ; Queue index
C3/DF86:	FE4936  	INC $3649,X    ; Mode +1
C3/DF89:	9E4933  	STZ $3349,X    ; Anim timer: 0
C3/DF8C:	207112  	JSR $1271      ; Set pose timer

Mode 1: Sustain sprite
C3/DF8F:	A62D    	LDX $2D        ; Queue index
C3/DF91:	207ADB  	JSR $DB7A      ; Set altitute
C3/DF94:	FE4933  	INC $3349,X    ; Anim timer +1
C3/DF97:	208C12  	JSR $128C      ; Define OAM
C3/DF9A:	38      	SEC            ; Set to requeue
C3/DF9B:	60      	RTS

Load colors for blue sky and non-sprite airships
C3/DF9C:	A9C2    	LDA #$C2       ; Source HB
C3/DF9E:	A04930  	LDY #$3049     ; To BG pal 0
C3/DFA1:	A29495  	LDX #$9594     ; Source LBs
C3/DFA4:	20F90F  	JSR $0FF9      ; Load fill color
C3/DFA7:	A9C2    	LDA #$C2       ; Source HB
C3/DFA9:	A06930  	LDY #$3069     ; To BG pal 1
C3/DFAC:	A29495  	LDX #$9594     ; Source LBs
C3/DFAF:	20F90F  	JSR $0FF9      ; Load the rest
C3/DFB2:	60      	RTS

20: Start final airship scene
C3/DFB3:	22D7CED4	JSL $D4CED7    ; Init registers
C3/DFB7:	200ED5  	JSR $D50E      ; Color math: BG1
C3/DFBA:	A980    	LDA #$80       ; Map wraps: No
C3/DFBC:	8D1A21  	STA $211A      ; Set M7 settings
C3/DFBF:	206FE5  	JSR $E56F      ; Upload GFX, map
C3/DFC2:	2076E3  	JSR $E376      ; Reset M7 vars
C3/DFC5:	2255CED4	JSL $D4CE55    ; HDMA: MS desig
C3/DFC9:	A9C2    	LDA #$C2       ; Source HB
C3/DFCB:	A0C931  	LDY #$31C9     ; To OBJ pal 4
C3/DFCE:	A24C97  	LDX #$974C     ; Source LBs
C3/DFD1:	20F90F  	JSR $0FF9      ; No text...
C3/DFD4:	A9C2    	LDA #$C2       ; Source HB
C3/DFD6:	A0E931  	LDY #$31E9     ; To OBJ pal 5
C3/DFD9:	A24497  	LDX #$9744     ; Source LBs
C3/DFDC:	20F90F  	JSR $0FF9      ; No text...
C3/DFDF:	20F7E0  	JSR $E0F7      ; No field...
C3/DFE2:	209CDF  	JSR $DF9C      ; Load BG colors
C3/DFE5:	A00100  	LDY #$0001     ; Zoom-out: 1
C3/DFE8:	84BB    	STY $BB        ; Set matrix A
C3/DFEA:	84C1    	STY $C1        ; Set matrix D
C3/DFEC:	A00800  	LDY #$0008     ; X: 8
C3/DFEF:	84B7    	STY $B7        ; Set center X
C3/DFF1:	A01800  	LDY #$0018     ; Y: 24
C3/DFF4:	84B9    	STY $B9        ; Set center Y
C3/DFF6:	A0D8FF  	LDY #$FFD8     ; X: -40
C3/DFF9:	8435    	STY $35        ; Set BG1 X-Pos
C3/DFFB:	A0D0FF  	LDY #$FFD0     ; Y: -48
C3/DFFE:	8437    	STY $37        ; Set BG1 Y-Pos
C3/E000:	A900    	LDA #$00       ; Min slot: 0
C3/E002:	A0A6E0  	LDY #$E0A6     ; C3/E0A6
C3/E005:	20DE11  	JSR $11DE      ; Queue zoom-out
C3/E008:	E626    	INC $26        ; Next: C3/E01A
C3/E00A:	A09600  	LDY #$0096     ; Frames: 150
C3/E00D:	8420    	STY $20        ; Set fade delay
C3/E00F:	A900    	LDA #$00       ; Min slot: 0
C3/E011:	A02CE0  	LDY #$E02C     ; C3/E02C
C3/E014:	20DE11  	JSR $11DE      ; Queue rotor fn
C3/E017:	4CDED5  	JMP $D5DE      ; Queue fade-in

21: Fade final airship
C3/E01A:	A420    	LDY $20        ; Delay expired?
C3/E01C:	D00D    	BNE $E02B      ; Exit if not
C3/E01E:	6426    	STZ $26        ; Next: Fade-out
C3/E020:	A07800  	LDY #$0078     ; Frames: 120
C3/E023:	8420    	STY $20        ; Set fade timer
C3/E025:	20A5F0  	JSR $F0A5      ; Fade BG pal 1+2
C3/E028:	207BF1  	JSR $F17B      ; Fade BG pal 0
C3/E02B:	60      	RTS

Animate final airship's rotors
C3/E02C:	A523    	LDA $23        ; NMI count
C3/E02E:	2901    	AND #$01       ; Even value?
C3/E030:	F011    	BEQ $E043      ; Branch if so
C3/E032:	A951    	LDA #$51       ; Tile: 81
C3/E034:	8F49987E	STA $7E9849    ; Set L-Rotor's
C3/E038:	A94F    	LDA #$4F       ; Tile: 79
C3/E03A:	8F4A987E	STA $7E984A    ; Set R-Rotor's
C3/E03E:	2054E0  	JSR $E054      ; Queue upload
C3/E041:	38      	SEC            ; Set to requeue
C3/E042:	60      	RTS            ; Exit
C3/E043:	A959    	LDA #$59       ; Tile: 89
C3/E045:	8F49987E	STA $7E9849    ; Set L-Rotor's
C3/E049:	A95A    	LDA #$5A       ; Tile: 90
C3/E04B:	8F4A987E	STA $7E984A    ; Set R-Rotor's
C3/E04F:	2054E0  	JSR $E054      ; Queue upload
C3/E052:	38      	SEC            ; Set to requeue
C3/E053:	60      	RTS

Set to refresh final airship's rotors
C3/E054:	A08302  	LDY #$0283     ; L-Rotor adr
C3/E057:	8414    	STY $14        ; Set VRAM ptr1
C3/E059:	A04998  	LDY #$9849     ; 7E/9849
C3/E05C:	8416    	STY $16        ; Set src1 LBs
C3/E05E:	A00602  	LDY #$0206     ; R-Rotor adr
C3/E061:	841B    	STY $1B        ; Set VRAM ptr2
C3/E063:	A04A98  	LDY #$984A     ; 7E/984A
C3/E066:	841D    	STY $1D        ; Set src2 LBs
C3/E068:	A97E    	LDA #$7E       ; Bank: 7E
C3/E06A:	8518    	STA $18        ; Set src1 HB
C3/E06C:	851F    	STA $1F        ; Set src2 HB
C3/E06E:	A00100  	LDY #$0001     ; Bytes: 1
C3/E071:	8412    	STY $12        ; Set src1 size
C3/E073:	8419    	STY $19        ; Set src2 size
C3/E075:	60      	RTS

Animate sideview airship's rotors
C3/E076:	A523    	LDA $23        ; NMI count
C3/E078:	2901    	AND #$01       ; Even value?
C3/E07A:	F00B    	BEQ $E087      ; Branch if so
C3/E07C:	A958    	LDA #$58       ; Tile: 88
C3/E07E:	8F49987E	STA $7E9849    ; Set rotors'
C3/E082:	2092E0  	JSR $E092      ; Queue upload
C3/E085:	38      	SEC            ; Set to requeue
C3/E086:	60      	RTS            ; Exit
C3/E087:	A934    	LDA #$34       ; Tile: 52
C3/E089:	8F49987E	STA $7E9849    ; Set rotors'
C3/E08D:	2092E0  	JSR $E092      ; Queue upload
C3/E090:	38      	SEC            ; Set to requeue
C3/E091:	60      	RTS

Set to refresh sideview airship's rotors
C3/E092:	A09208  	LDY #$0892     ; $0892
C3/E095:	8414    	STY $14        ; Set VRAM ptr
C3/E097:	A04998  	LDY #$9849     ; 7E/9849
C3/E09A:	8416    	STY $16        ; Set src LBs
C3/E09C:	A97E    	LDA #$7E       ; Bank: 7E
C3/E09E:	8518    	STA $18        ; Set src HB
C3/E0A0:	A00100  	LDY #$0001     ; Bytes: 1
C3/E0A3:	8412    	STY $12        ; Set data size
C3/E0A5:	60      	RTS

Process queued zoom-out for final airship scene
C3/E0A6:	20ABE0  	JSR $E0AB      ; Zoom out
C3/E0A9:	38      	SEC            ; Set to requeue
C3/E0AA:	60      	RTS

Zoom out from final airship
C3/E0AB:	A523    	LDA $23        ; NMI count
C3/E0AD:	2907    	AND #$07       ; Now 0-7
C3/E0AF:	D00A    	BNE $E0BB      ; Branch if > 0
C3/E0B1:	A4B9    	LDY $B9        ; M7 center Y
C3/E0B3:	88      	DEY            ; Subtract 1
C3/E0B4:	84B9    	STY $B9        ; Save changes
C3/E0B6:	A4B7    	LDY $B7        ; M7 center X
C3/E0B8:	C8      	INY            ; Add 1
C3/E0B9:	84B7    	STY $B7        ; Save changes
C3/E0BB:	C220    	REP #$20       ; 16-bit A
C3/E0BD:	E6BB    	INC $BB        ; Matrix A +1
C3/E0BF:	E6BB    	INC $BB        ; Matrix A +1
C3/E0C1:	E6C1    	INC $C1        ; Matrix D +1
C3/E0C3:	E6C1    	INC $C1        ; Matrix D +1
C3/E0C5:	E220    	SEP #$20       ; 8-bit A
C3/E0C7:	60      	RTS

Upload rearview airship's balloon graphics
C3/E0C8:	A0BAD7  	LDY #$D7BA     ; 7E/D7BA
C3/E0CB:	84E7    	STY $E7        ; Set src LBs
C3/E0CD:	A97E    	LDA #$7E       ; Bank: 7E
C3/E0CF:	85E9    	STA $E9        ; Set src HB
C3/E0D1:	A08005  	LDY #$0580     ; Bytes: 1408
C3/E0D4:	84EB    	STY $EB        ; Set data size
C3/E0D6:	64ED    	STZ $ED        ; Attrib LB: 0
C3/E0D8:	64EE    	STZ $EE        ; Attrib HB: 0
C3/E0DA:	A0006C  	LDY #$6C00     ; VRAM pointer
C3/E0DD:	4C09ED  	JMP $ED09      ; Upload data

Initialize credits' colors to black for fade-in
C3/E0E0:	A9C3    	LDA #$C3       ; Src HB
C3/E0E2:	A0C931  	LDY #$31C9     ; To OBJ pal 4
C3/E0E5:	A25F11  	LDX #$115F     ; Src LBs
C3/E0E8:	20F90F  	JSR $0FF9      ; Do big font
C3/E0EB:	A9C3    	LDA #$C3       ; Src HB
C3/E0ED:	A0E931  	LDY #$31E9     ; To OBJ pal 5
C3/E0F0:	A25F11  	LDX #$115F     ; Src LBs
C3/E0F3:	20F90F  	JSR $0FF9      ; Do small font
C3/E0F6:	60      	RTS

Load BG1 palettes for credits scenes
C3/E0F7:	A9C2    	LDA #$C2       ; Src HB
C3/E0F9:	A06930  	LDY #$3069     ; To BG pal 1
C3/E0FC:	A2B495  	LDX #$95B4     ; Src LBs
C3/E0FF:	20F90F  	JSR $0FF9      ; C3/DFAF...
C3/E102:	A9C2    	LDA #$C2       ; Src HB
C3/E104:	A08930  	LDY #$3089     ; To BG pal 2
C3/E107:	A2D495  	LDX #$95D4     ; Src LBs
C3/E10A:	20F90F  	JSR $0FF9      ; Do sea
C3/E10D:	A9C2    	LDA #$C2       ; Src HB
C3/E10F:	A0A930  	LDY #$30A9     ; To BG pal 3
C3/E112:	A2F495  	LDX #$95F4     ; Src LBs
C3/E115:	20F90F  	JSR $0FF9      ; Do clouds
C3/E118:	A9C2    	LDA #$C2       ; Src HB
C3/E11A:	A0C930  	LDY #$30C9     ; To BG pal 4
C3/E11D:	A21496  	LDX #$9614     ; Src LBs
C3/E120:	20F90F  	JSR $0FF9      ; Do trees
C3/E123:	A9C2    	LDA #$C2       ; Src HB
C3/E125:	A00931  	LDY #$3109     ; To BG pal 6
C3/E128:	A23496  	LDX #$9634     ; Src LBs
C3/E12B:	20F90F  	JSR $0FF9      ; Do lake
C3/E12E:	A9C2    	LDA #$C2       ; Src HB
C3/E130:	A02931  	LDY #$3129     ; To BG pal 7
C3/E133:	A25496  	LDX #$9654     ; Src LBs
C3/E136:	20F90F  	JSR $0FF9      ; Do grass
C3/E139:	60      	RTS

Scroll actor's pseudonym down
C3/E13A:	A4CF    	LDY $CF        ; Scroll timer
C3/E13C:	C464    	CPY $64        ; At endpoint?
C3/E13E:	F00E    	BEQ $E14E      ; Dequeue if so
C3/E140:	A523    	LDA $23        ; NMI count
C3/E142:	2903    	AND #$03       ; Now 0-3
C3/E144:	D006    	BNE $E14C      ; Exit if 1-3
C3/E146:	C220    	REP #$20       ; 16-bit A
C3/E148:	C63F    	DEC $3F        ; BG3 camera up
C3/E14A:	E220    	SEP #$20       ; 8-bit A
C3/E14C:	38      	SEC            ; Set to requeue
C3/E14D:	60      	RTS            ; Exit
C3/E14E:	18      	CLC            ; Set to dequeue
C3/E14F:	60      	RTS

Process queued field fade-in
C3/E150:	AA      	TAX            ; Index mode
C3/E151:	7C54E1  	JMP ($E154,X)  ; Handle mode

Jump table
C3/E154:	58E1    	; Initialize brightness
C3/E156:	67E1    	; Increase brightness

Mode 0: Initialize brightness
C3/E158:	A62D    	LDX $2D        ; Queue index
C3/E15A:	FE4936  	INC $3649,X    ; Mode +1
C3/E15D:	A901    	LDA #$01       ; BRT: 1 and ON
C3/E15F:	9D4A34  	STA $344A,X    ; Set next BRT
C3/E162:	A90F    	LDA #$0F       ; Frames: 15
C3/E164:	9D4933  	STA $3349,X    ; Set timer

Mode 1: Increase brightness
C3/E167:	A62D    	LDX $2D        ; Queue index
C3/E169:	BD4933  	LDA $3349,X    ; Timer expired?
C3/E16C:	F00D    	BEQ $E17B      ; Finalize if so
C3/E16E:	BD4A34  	LDA $344A,X    ; Next brightness
C3/E171:	8544    	STA $44        ; Set as current
C3/E173:	FE4A34  	INC $344A,X    ; Next BRT +1
C3/E176:	DE4933  	DEC $3349,X    ; Timer -1
C3/E179:	38      	SEC            ; Set to requeue
C3/E17A:	60      	RTS            ; Exit
C3/E17B:	A90F    	LDA #$0F       ; BRT: 15 and ON
C3/E17D:	8544    	STA $44        ; Set brightness
C3/E17F:	18      	CLC            ; Set to dequeue
C3/E180:	60      	RTS

Process queued field fade-out
C3/E181:	AA      	TAX            ; Index mode
C3/E182:	7C85E1  	JMP ($E185,X)  ; Handle mode

Jump table
C3/E185:	89E1    	; Initialize brightness
C3/E187:	93E1    	; Decrease brightness

Mode 0: Initialize brightness
C3/E189:	A62D    	LDX $2D        ; Queue index
C3/E18B:	FE4936  	INC $3649,X    ; Mode +1
C3/E18E:	A90F    	LDA #$0F       ; BRT: 15 and ON
C3/E190:	9DCA33  	STA $33CA,X    ; Set next BRT

Mode 1: Decrease brightness
C3/E193:	A420    	LDY $20        ; Timer expired?
C3/E195:	F00C    	BEQ $E1A3      ; Finalize if so
C3/E197:	A62D    	LDX $2D        ; Queue index
C3/E199:	BDCA33  	LDA $33CA,X    ; Next brightness
C3/E19C:	8544    	STA $44        ; Set as current
C3/E19E:	DECA33  	DEC $33CA,X    ; Next BRT -1
C3/E1A1:	38      	SEC            ; Set to requeue
C3/E1A2:	60      	RTS            ; Exit
C3/E1A3:	A980    	LDA #$80       ; BRT: 0 and OFF
C3/E1A5:	8544    	STA $44        ; Set brightness
C3/E1A7:	18      	CLC            ; Set to dequeue
C3/E1A8:	60      	RTS

Queue Mode 7 animation script loading
C3/E1A9:	48      	PHA            ; Save ptr HB
C3/E1AA:	5A      	PHY            ; Save ptr LBs
C3/E1AB:	A901    	LDA #$01       ; Min slot: 8
C3/E1AD:	A0C3E1  	LDY #$E1C3     ; C3/E1C3
C3/E1B0:	20DE11  	JSR $11DE      ; Queue anim fn
C3/E1B3:	C220    	REP #$20       ; 16-bit A
C3/E1B5:	7A      	PLY            ; Anim ptr LBs
C3/E1B6:	98      	TYA            ; Put in A
C3/E1B7:	9FC9327E	STA $7E32C9,X  ; Put in queue
C3/E1BB:	E220    	SEP #$20       ; 8-bit A
C3/E1BD:	68      	PLA            ; Anim ptr HB
C3/E1BE:	9FCA357E	STA $7E35CA,X  ; Put in queue
C3/E1C2:	60      	RTS

Load parameters for Mode 7 animation
C3/E1C3:	AA      	TAX            ; Index mode
C3/E1C4:	7CC7E1  	JMP ($E1C7,X)  ; Handle mode

Jump table for the above
C3/E1C7:	CBE1    	; Initialize timer
C3/E1C9:	D3E1    	; Load animation flags

Mode 0: Initialize sequence timer
C3/E1CB:	A62D    	LDX $2D        ; Queue index
C3/E1CD:	FE4936  	INC $3649,X    ; Mode +1
C3/E1D0:	207112  	JSR $1271      ; Set anim timer

Mode 1: Load animation flags
C3/E1D3:	A62D    	LDX $2D        ; Queue index
C3/E1D5:	209212  	JSR $1292      ; Anim timer -1
C3/E1D8:	7B      	TDC            ; Clear A
C3/E1D9:	BDC936  	LDA $36C9,X    ; Anim index
C3/E1DC:	A8      	TAY            ; Index it
C3/E1DD:	C220    	REP #$20       ; 16-bit A
C3/E1DF:	B7EB    	LDA [$EB],Y    ; Anim flags
C3/E1E1:	8504    	STA $04        ; Set as current
C3/E1E3:	E220    	SEP #$20       ; 8-bit A
C3/E1E5:	38      	SEC            ; Set to requeue
C3/E1E6:	60      	RTS

Refresh Mode 7 registers (NMI)
C3/E1E7:	A5BB    	LDA $BB        ; Matrix A LB
C3/E1E9:	8D1B21  	STA $211B      ; To register
C3/E1EC:	A5BC    	LDA $BC        ; Matrix A HB
C3/E1EE:	8D1B21  	STA $211B      ; To register
C3/E1F1:	A5BD    	LDA $BD        ; Matrix B LB
C3/E1F3:	8D1C21  	STA $211C      ; To register
C3/E1F6:	A5BE    	LDA $BE        ; Matrix B HB
C3/E1F8:	8D1C21  	STA $211C      ; To register
C3/E1FB:	A5BF    	LDA $BF        ; Matrix C LB
C3/E1FD:	8D1D21  	STA $211D      ; To register
C3/E200:	A5C0    	LDA $C0        ; Matrix C HB
C3/E202:	8D1D21  	STA $211D      ; To register
C3/E205:	A5C1    	LDA $C1        ; Matrix D LB
C3/E207:	8D1E21  	STA $211E      ; To register
C3/E20A:	A5C2    	LDA $C2        ; Matrix D HB
C3/E20C:	8D1E21  	STA $211E      ; To register
C3/E20F:	A5B7    	LDA $B7        ; Center X LB
C3/E211:	8D1F21  	STA $211F      ; To register
C3/E214:	A5B8    	LDA $B8        ; Center X HB
C3/E216:	8D1F21  	STA $211F      ; To register
C3/E219:	A5B9    	LDA $B9        ; Center Y LB
C3/E21B:	8D2021  	STA $2120      ; To register
C3/E21E:	A5BA    	LDA $BA        ; Center Y HB
C3/E220:	8D2021  	STA $2120      ; To register
C3/E223:	60      	RTS

Queue Mode 7 animation script decoding
C3/E224:	A900    	LDA #$00       ; Min slot: 0
C3/E226:	A02DE2  	LDY #$E22D     ; C3/E22D
C3/E229:	20DE11  	JSR $11DE      ; Queue anim fn
C3/E22C:	60      	RTS

Decode parameters for Mode 7 animation
C3/E22D:	A504    	LDA $04        ; Anim flags
C3/E22F:	8910    	BIT #$10       ; Tilt right?
C3/E231:	F008    	BEQ $E23B      ; Skip if not
C3/E233:	C220    	REP #$20       ; 16-bit A
C3/E235:	E6C3    	INC $C3        ; Mod index +1
C3/E237:	E220    	SEP #$20       ; 8-bit A
C3/E239:	E659    	INC $59        ; No use...

Fork: Rotate counterclockwise
C3/E23B:	A504    	LDA $04        ; Anim flags
C3/E23D:	8920    	BIT #$20       ; Tilt left?
C3/E23F:	F008    	BEQ $E249      ; Skip if not
C3/E241:	C220    	REP #$20       ; 16-bit A
C3/E243:	C6C3    	DEC $C3        ; Mod index -1
C3/E245:	E220    	SEP #$20       ; 8-bit A
C3/E247:	C659    	DEC $59        ; No use...

Fork: Rotate forward
C3/E249:	A504    	LDA $04        ; Anim flags
C3/E24B:	8940    	BIT #$40       ; Tilt up?
C3/E24D:	F006    	BEQ $E255      ; Skip if not
C3/E24F:	C220    	REP #$20       ; 16-bit A
C3/E251:	E6C7    	INC $C7        ; Matrix mod +1
C3/E253:	E220    	SEP #$20       ; 8-bit A

Fork: Rotate backward
C3/E255:	A505    	LDA $05        ; Anim flags
C3/E257:	8940    	BIT #$40       ; Tilt down?
C3/E259:	F006    	BEQ $E261      ; Skip if not
C3/E25B:	C220    	REP #$20       ; 16-bit A
C3/E25D:	C6C7    	DEC $C7        ; Matrix mod -1
C3/E25F:	E220    	SEP #$20       ; 8-bit A

Fork: Zoom in
C3/E261:	A504    	LDA $04        ; Anim flags
C3/E263:	8980    	BIT #$80       ; Inc divisor?
C3/E265:	F002    	BEQ $E269      ; Skip if not
C3/E267:	E6C6    	INC $C6        ; Divisor +1

Fork: Zoom out
C3/E269:	A505    	LDA $05        ; Anim flags
C3/E26B:	8980    	BIT #$80       ; Dec divisor?
C3/E26D:	F002    	BEQ $E271      ; Skip if not
C3/E26F:	C6C6    	DEC $C6        ; Divisor -1

Fork: Scroll southward
C3/E271:	A505    	LDA $05        ; Anim flags
C3/E273:	8908    	BIT #$08       ; Scroll down?
C3/E275:	F008    	BEQ $E27F      ; Skip if not
C3/E277:	C220    	REP #$20       ; 16-bit A
C3/E279:	C6B9    	DEC $B9        ; Center Y -1
C3/E27B:	C637    	DEC $37        ; BG1 Y-Pos -1
C3/E27D:	E220    	SEP #$20       ; 8-bit A

Fork: Scroll northward
C3/E27F:	A505    	LDA $05        ; Anim flags
C3/E281:	8904    	BIT #$04       ; Scroll up?
C3/E283:	F008    	BEQ $E28D      ; Skip if not
C3/E285:	C220    	REP #$20       ; 16-bit A
C3/E287:	E6B9    	INC $B9        ; Center Y +1
C3/E289:	E637    	INC $37        ; BG1 Y-Pos +1
C3/E28B:	E220    	SEP #$20       ; 8-bit A

Fork: Scroll eastward
C3/E28D:	A505    	LDA $05        ; Anim flags
C3/E28F:	8902    	BIT #$02       ; Scroll right?
C3/E291:	F008    	BEQ $E29B      ; Skip if not
C3/E293:	C220    	REP #$20       ; 16-bit A
C3/E295:	C6B7    	DEC $B7        ; Center X -1
C3/E297:	C635    	DEC $35        ; BG1 X-Pos -1
C3/E299:	E220    	SEP #$20       ; 8-bit A

Fork: Scroll westward
C3/E29B:	A505    	LDA $05        ; Anim flags
C3/E29D:	8901    	BIT #$01       ; Scroll left?
C3/E29F:	F008    	BEQ $E2A9      ; Skip if not
C3/E2A1:	C220    	REP #$20       ; 16-bit A
C3/E2A3:	E6B7    	INC $B7        ; Center X +1
C3/E2A5:	E635    	INC $35        ; BG1 X-Pos +1
C3/E2A7:	E220    	SEP #$20       ; 8-bit A

Fork: Build Mode 7 matrix tables
C3/E2A9:	20E3E2  	JSR $E2E3      ; Cap center X/Y
C3/E2AC:	C220    	REP #$20       ; 16-bit A
C3/E2AE:	A504    	LDA $04        ; Anim flags
C3/E2B0:	29FFF0  	AND #$F0FF     ; Only scrolling?
C3/E2B3:	E220    	SEP #$20       ; 8-bit A
C3/E2B5:	F006    	BEQ $E2BD      ; Exit if so
C3/E2B7:	2022ED  	JSR $ED22      ; Build tables
C3/E2BA:	20BFE2  	JSR $E2BF      ; Useless...
C3/E2BD:	38      	SEC            ; Set to requeue
C3/E2BE:	60      	RTS

Copy matrix data for first scanline to global variables (useless)
C3/E2BF:	ACC207  	LDY $07C2      ; Mtx A overscan
C3/E2C2:	8CC407  	STY $07C4      ; Never read...
C3/E2C5:	AC8409  	LDY $0984      ; Mtx B overscan
C3/E2C8:	8C8609  	STY $0986      ; Never read...
C3/E2CB:	AC460B  	LDY $0B46      ; Mtx C overscan
C3/E2CE:	8C480B  	STY $0B48      ; Never read...
C3/E2D1:	AC0206  	LDY $0602      ; Mtx A, line 1
C3/E2D4:	84BB    	STY $BB        ; Set global A
C3/E2D6:	84C1    	STY $C1        ; Set global D
C3/E2D8:	ACC407  	LDY $07C4      ; Mtx B, line 1
C3/E2DB:	84BD    	STY $BD        ; Set global B
C3/E2DD:	AC8609  	LDY $0986      ; Mtx C, line 1
C3/E2E0:	84BF    	STY $BF        ; Set global C
C3/E2E2:	60      	RTS

Keep Mode 7 center X and Y within boundaries
C3/E2E3:	C220    	REP #$20       ; 16-bit A
C3/E2E5:	A5B7    	LDA $B7        ; Center X
C3/E2E7:	29FF1F  	AND #$1FFF     ; Clear excess
C3/E2EA:	85B7    	STA $B7        ; Save changes
C3/E2EC:	A5B9    	LDA $B9        ; Center Y
C3/E2EE:	29FF1F  	AND #$1FFF     ; Clear excess
C3/E2F1:	85B9    	STA $B9        ; Save changes
C3/E2F3:	E220    	SEP #$20       ; 8-bit A
C3/E2F5:	60      	RTS

Configure Mode 7 not to apply to cloudy sky
C3/E2F6:	228FCBD4	JSL $D4CB8F    ; HDMA: Matrices
C3/E2FA:	9C1043  	STZ $4310      ; 1Rx1B to PPU
C3/E2FD:	A905    	LDA #$05       ; $2105
C3/E2FF:	8D1143  	STA $4311      ; To BG mode
C3/E302:	A015E3  	LDY #$E315     ; C3/E315
C3/E305:	8C1243  	STY $4312      ; Set src LBs
C3/E308:	A9C3    	LDA #$C3       ; Bank: C3
C3/E30A:	8D1443  	STA $4314      ; Set src HB
C3/E30D:	8D1743  	STA $4317      ; Set indir HB
C3/E310:	A902    	LDA #$02       ; Channel: 1
C3/E312:	0443    	TSB $43        ; Queue HDMA-1
C3/E314:	60      	RTS

BG mode and tile size per scanline
C3/E315:	47 01   	; Mode 1, 8x8 tiles
C3/E317:	01 07   	; Mode 7
C3/E319:	00      	; End

Set color addition and math for field and for cloudy sky
C3/E31A:	A901    	LDA #$01       ; 2Rx1B to PPU
C3/E31C:	8D3043  	STA $4330      ; Set DMA mode
C3/E31F:	A930    	LDA #$30       ; $2130, $2131
C3/E321:	8D3143  	STA $4331      ; To color regs
C3/E324:	A052E3  	LDY #$E352     ; C3/E352
C3/E327:	8C3243  	STY $4332      ; Set src LBs
C3/E32A:	A9C3    	LDA #$C3       ; Bank: C3
C3/E32C:	8D3443  	STA $4334      ; Set src HB
C3/E32F:	8D3743  	STA $4337      ; Set indir HB
C3/E332:	A908    	LDA #$08       ; Channel: 3
C3/E334:	0443    	TSB $43        ; Queue HDMA-3
C3/E336:	60      	RTS

Queue gradient effect for field under sky
C3/E337:	9C2043  	STZ $4320      ; 1Rx1B to PPU
C3/E33A:	A932    	LDA #$32       ; $2132
C3/E33C:	8D2143  	STA $4321      ; To fixed color
C3/E33F:	A059E3  	LDY #$E359     ; C3/E359
C3/E342:	8C2243  	STY $4322      ; Set src LBs
C3/E345:	A9C3    	LDA #$C3       ; Bank: C3
C3/E347:	8D2443  	STA $4324      ; Set src HB
C3/E34A:	8D2743  	STA $4327      ; Set indir HB
C3/E34D:	A904    	LDA #$04       ; Channel: 2
C3/E34F:	0443    	TSB $43        ; Queue HDMA-2
C3/E351:	60      	RTS

Color addition and math per scanline
C3/E352:	47 80 41	; BG1, inside window, half mode
C3/E355:	01 82 01	; BG1, inside window, add subscreen
C3/E358:	00      	; End

Gradient table for the above
C3/E359:	47 E0   	; RGB: 0
C3/E35B:	01 ED   	; RGB: 13
C3/E35D:	01 EB   	; RGB: 11
C3/E35F:	01 EA   	; RGB: 10
C3/E361:	02 E9   	; RGB: 9
C3/E363:	03 E8   	; RGB: 8
C3/E365:	04 E7   	; RGB: 7
C3/E367:	05 E6   	; RGB: 6
C3/E369:	06 E5   	; RGB: 5
C3/E36B:	07 E4   	; RGB: 4
C3/E36D:	08 E3   	; RGB: 3
C3/E36F:	0C E2   	; RGB: 2
C3/E371:	0F E1   	; RGB: 1
C3/E373:	1E E0   	; RGB: 0
C3/E375:	00      	; End

Reset Mode 7 parameters
C3/E376:	A00001  	LDY #$0100     ; 256
C3/E379:	84B7    	STY $B7        ; Set center X
C3/E37B:	A08000  	LDY #$0080     ; 128
C3/E37E:	84B9    	STY $B9        ; Set center Y
C3/E380:	8435    	STY $35        ; Set BG1 X-Pos
C3/E382:	7B      	TDC            ; Clear A
C3/E383:	A8      	TAY            ; Clear Y
C3/E384:	8437    	STY $37        ; BG1 Y-Pos: 0
C3/E386:	6458    	STZ $58        ; No use...
C3/E388:	A940    	LDA #$40       ; No use...
C3/E38A:	8559    	STA $59        ; No use...
C3/E38C:	A00000  	LDY #$0000     ; Vertical angle
C3/E38F:	84C7    	STY $C7        ; Set for BG1
C3/E391:	A00001  	LDY #$0100     ; Base divisor
C3/E394:	84C5    	STY $C5        ; Set matrices'
C3/E396:	A00000  	LDY #$0000     ; Mod index: 0
C3/E399:	84C3    	STY $C3        ; Set matrices'
C3/E39B:	60      	RTS

Unpack and upload graphics and tilemaps for sideview airship scene
C3/E39C:	20C9E3  	JSR $E3C9      ; Upload font GFX
C3/E39F:	2016E6  	JSR $E616      ; Unpack map, GFX
C3/E3A2:	20D0E5  	JSR $E5D0      ; Pal numbers loc
C3/E3A5:	20B7E4  	JSR $E4B7      ; Convert M7 GFX A
C3/E3A8:	20BAE3  	JSR $E3BA      ; Insert tilemap A
C3/E3AB:	2099E5  	JSR $E599      ; Upload M7 map A
C3/E3AE:	20D0E5  	JSR $E5D0      ; Pal numbers loc
C3/E3B1:	20C7E4  	JSR $E4C7      ; Convert M7 GFX B
C3/E3B4:	20BAE3  	JSR $E3BA      ; Insert tilemap B
C3/E3B7:	4CB1E5  	JMP $E5B1      ; Upload M7 map B

Assemble half of tilemap for sideview airship scene
C3/E3BA:	20F2E5  	JSR $E5F2      ; Set ptrs loc
C3/E3BD:	A21AFC  	LDX #$FC1A     ; Tiles loc
C3/E3C0:	86F1    	STX $F1        ; Set src LBs
C3/E3C2:	A97E    	LDA #$7E       ; Bank: 7E
C3/E3C4:	85F3    	STA $F3        ; Set src HB
C3/E3C6:	4C6BE6  	JMP $E66B      ; Build map

Unpack and upload font graphics for credits
C3/E3C9:	A000B5  	LDY #$B500     ; Source LBs
C3/E3CC:	A9CE    	LDA #$CE       ; Source HB
C3/E3CE:	20B1EC  	JSR $ECB1      ; Load big font
C3/E3D1:	20FCE3  	JSR $E3FC      ; Set as 16x16
C3/E3D4:	A000C0  	LDY #$C000     ; 7E/C000
C3/E3D7:	84E7    	STY $E7        ; Set src LBs
C3/E3D9:	A97E    	LDA #$7E       ; Bank: 7E
C3/E3DB:	85E9    	STA $E9        ; Set src HB
C3/E3DD:	A0000C  	LDY #$0C00     ; Bytes: 3072
C3/E3E0:	84EB    	STY $EB        ; Set data size
C3/E3E2:	A00070  	LDY #$7000     ; VRAM pointer
C3/E3E5:	20D6EC  	JSR $ECD6      ; Upload font
C3/E3E8:	A0C081  	LDY #$81C0     ; C4/81C0
C3/E3EB:	84E7    	STY $E7        ; Set src LBs
C3/E3ED:	A9C4    	LDA #$C4       ; Bank: C4
C3/E3EF:	85E9    	STA $E9        ; Set src HB
C3/E3F1:	A00002  	LDY #$0200     ; Bytes: 512
C3/E3F4:	84EB    	STY $EB        ; Set data size
C3/E3F6:	A0007E  	LDY #$7E00     ; VRAM pointer
C3/E3F9:	4CD6EC  	JMP $ECD6      ; Do small font

Expand large font graphics to 16x16 for credits
C3/E3FC:	8B      	PHB            ; Save DB
C3/E3FD:	A97E    	LDA #$7E       ; Bank: 7E
C3/E3FF:	48      	PHA            ; Put on stack
C3/E400:	AB      	PLB            ; Set DB to 7E
C3/E401:	A600    	LDX $00        ; ROM index: 0
C3/E403:	9B      	TXY            ; Dst index: 0
C3/E404:	DA      	PHX            ; Save ROM index
C3/E405:	7B      	TDC            ; Clear A
C3/E406:	BF4C98C2	LDA $C2984C,X  ; Tile index
C3/E40A:	C220    	REP #$20       ; 16-bit A
C3/E40C:	0A      	ASL A          ; x2
C3/E40D:	0A      	ASL A          ; x4
C3/E40E:	0A      	ASL A          ; x8
C3/E40F:	0A      	ASL A          ; x16
C3/E410:	AA      	TAX            ; Index it
C3/E411:	E220    	SEP #$20       ; 8-bit A
C3/E413:	A910    	LDA #$10       ; Rows: 8
C3/E415:	85E0    	STA $E0        ; Set counter
C3/E417:	BD00C0  	LDA $C000,X    ; 8 px, 1 plane
C3/E41A:	9900C4  	STA $C400,Y    ; Put in buffer
C3/E41D:	E8      	INX            ; Src index +1
C3/E41E:	C8      	INY            ; Dst index +1
C3/E41F:	C6E0    	DEC $E0        ; Counter -1
C3/E421:	D0F4    	BNE $E417      ; Loop till zero

Fork: Blank right-hand 8x8 tile
C3/E423:	7B      	TDC            ; Clear A
C3/E424:	AA      	TAX            ; Counter: 0
C3/E425:	9900C4  	STA $C400,Y    ; Clear a plane
C3/E428:	C8      	INY            ; Dst index +1
C3/E429:	E8      	INX            ; Counter +1
C3/E42A:	E01000  	CPX #$0010     ; Done 8 rows?
C3/E42D:	D0F6    	BNE $E425      ; Loop if not
C3/E42F:	FA      	PLX            ; ROM index
C3/E430:	E8      	INX            ; ROM index +1
C3/E431:	E04000  	CPX #$0040     ; Done 64 tiles?
C3/E434:	D0CE    	BNE $E404      ; Loop if not
C3/E436:	AB      	PLB            ; Restore DB
C3/E437:	60      	RTS

Unpack and upload cloudy sky graphics and tilemap
C3/E438:	C220    	REP #$20       ; 16-bit A
C3/E43A:	AF06B2EE	LDA $EEB206    ; Source LBs
C3/E43E:	A8      	TAY            ; Put in Y
C3/E43F:	E220    	SEP #$20       ; 8-bit A
C3/E441:	AF08B2EE	LDA $EEB208    ; Source HB
C3/E445:	20B1EC  	JSR $ECB1      ; Unpack graphics
C3/E448:	207DE4  	JSR $E47D      ; Src: 7E/C000
C3/E44B:	A0201A  	LDY #$1A20     ; Bytes: 6688
C3/E44E:	84EB    	STY $EB        ; Set data size
C3/E450:	64ED    	STZ $ED        ; Attrib LB: 0
C3/E452:	64EE    	STZ $EE        ; Attrib HB: 0
C3/E454:	A00040  	LDY #$4000     ; VRAM pointer
C3/E457:	2009ED  	JSR $ED09      ; Upload graphics
C3/E45A:	C220    	REP #$20       ; 16-bit A
C3/E45C:	AF09B2EE	LDA $EEB209    ; Source LBs
C3/E460:	A8      	TAY            ; Put in Y
C3/E461:	E220    	SEP #$20       ; 8-bit A
C3/E463:	AF0BB2EE	LDA $EEB20B    ; Source HB
C3/E467:	20B1EC  	JSR $ECB1      ; Unpack tilemap
C3/E46A:	A00020  	LDY #$2000     ; Add: Priority
C3/E46D:	84ED    	STY $ED        ; Set complement
C3/E46F:	207DE4  	JSR $E47D      ; Src: 7E/C000
C3/E472:	A00004  	LDY #$0400     ; Bytes: 1024
C3/E475:	84EB    	STY $EB        ; Set data size
C3/E477:	A00050  	LDY #$5000     ; VRAM pointer
C3/E47A:	4C09ED  	JMP $ED09      ; Upload tilemap

Set source for uploading decompressed data
C3/E47D:	A000C0  	LDY #$C000     ; 7E/C000
C3/E480:	84E7    	STY $E7        ; Set src LBs
C3/E482:	A97E    	LDA #$7E       ; Bank: 7E
C3/E484:	85E9    	STA $E9        ; Set src HB
C3/E486:	60      	RTS

Unpack and upload graphics and tilemaps for dense clouds
C3/E487:	20C9E3  	JSR $E3C9      ; Upload font GFX
C3/E48A:	2016E6  	JSR $E616      ; Unpack map, GFX
C3/E48D:	203BE6  	JSR $E63B      ; Upload sprites
C3/E490:	20D0E5  	JSR $E5D0      ; Pal numbers loc
C3/E493:	20B7E4  	JSR $E4B7      ; Convert M7 GFX A
C3/E496:	20A8E4  	JSR $E4A8      ; Insert tilemap A
C3/E499:	2099E5  	JSR $E599      ; Upload M7 map A
C3/E49C:	20D0E5  	JSR $E5D0      ; Pal numbers loc
C3/E49F:	20C7E4  	JSR $E4C7      ; Convert M7 GFX B
C3/E4A2:	20A8E4  	JSR $E4A8      ; Insert tilemap B
C3/E4A5:	4CB1E5  	JMP $E5B1      ; Upload M7 map B

Assemble half of tilemap for dense clouds
C3/E4A8:	20EBE5  	JSR $E5EB      ; Set ptrs loc
C3/E4AB:	A21AFC  	LDX #$FC1A     ; Tiles loc
C3/E4AE:	86F1    	STX $F1        ; Set src LBs
C3/E4B0:	A97E    	LDA #$7E       ; Bank: 7E
C3/E4B2:	85F3    	STA $F3        ; Set src HB
C3/E4B4:	4C6BE6  	JMP $E66B      ; Build map

Add 4bpp graphics to Mode 7 map (first 128 tiles)
C3/E4B7:	64E4    	STZ $E4        ; Pal index LB
C3/E4B9:	64E5    	STZ $E5        ; Pal index HB
C3/E4BB:	A980    	LDA #$80       ; Tiles: 128
C3/E4BD:	85ED    	STA $ED        ; Set counter
C3/E4BF:	A20098  	LDX #$9800     ; Source LBs
C3/E4C2:	A97F    	LDA #$7F       ; Source HB
C3/E4C4:	4CB4E6  	JMP $E6B4      ; Convert GFX

Add 4bpp graphics to Mode 7 map (last 128 tiles)
C3/E4C7:	A28000  	LDX #$0080     ; Index: 128
C3/E4CA:	86E4    	STX $E4        ; Set pal index
C3/E4CC:	A980    	LDA #$80       ; Tiles: 128
C3/E4CE:	85ED    	STA $ED        ; Set counter
C3/E4D0:	A200A8  	LDX #$A800     ; Source LBs
C3/E4D3:	A97F    	LDA #$7F       ; Source HB
C3/E4D5:	4CB4E6  	JMP $E6B4      ; Convert GFX

Unpack and upload graphics and tilemaps for grassfield scenes
C3/E4D8:	20C9E3  	JSR $E3C9      ; Upload font GFX
C3/E4DB:	20F9E5  	JSR $E5F9      ; Unpack map, GFX
C3/E4DE:	203BE6  	JSR $E63B      ; Upload sprites
C3/E4E1:	4CE7E4  	JMP $E4E7      ; Upload M7 map

Unpack and upload graphics and tilemaps for second-last airship scene
C3/E4E4:	20F9E5  	JSR $E5F9      ; Unpack map, GFX
C3/E4E7:	20C9E5  	JSR $E5C9      ; Pal numbers loc
C3/E4EA:	20B7E4  	JSR $E4B7      ; Convert M7 GFX A
C3/E4ED:	2000E5  	JSR $E500      ; Insert tilemap A
C3/E4F0:	2099E5  	JSR $E599      ; Upload M7 map A
C3/E4F3:	20C9E5  	JSR $E5C9      ; Pal numbers loc
C3/E4F6:	20C7E4  	JSR $E4C7      ; Convert M7 GFX B
C3/E4F9:	2000E5  	JSR $E500      ; Insert tilemap B
C3/E4FC:	20B1E5  	JSR $E5B1      ; Upload M7 map B
C3/E4FF:	6B      	RTL

Assemble half of grassfield tilemap
C3/E500:	20DAE5  	JSR $E5DA      ; Set ptrs loc
C3/E503:	A23ADD  	LDX #$DD3A     ; Tiles loc
C3/E506:	86F1    	STX $F1        ; Set src LBs
C3/E508:	A97E    	LDA #$7E       ; Bank: 7E
C3/E50A:	85F3    	STA $F3        ; Set src HB
C3/E50C:	4C6BE6  	JMP $E66B      ; Build map

Unpack and upload graphics and tilemaps for boat scene
C3/E50F:	20C9E3  	JSR $E3C9      ; Upload font GFX
C3/E512:	20F9E5  	JSR $E5F9      ; Unpack map, GFX
C3/E515:	203BE6  	JSR $E63B      ; Upload sprites
C3/E518:	20C9E5  	JSR $E5C9      ; Pal numbers loc
C3/E51B:	20B7E4  	JSR $E4B7      ; Convert M7 GFX A
C3/E51E:	2030E5  	JSR $E530      ; Insert tilemap A
C3/E521:	2099E5  	JSR $E599      ; Upload M7 map A
C3/E524:	20C9E5  	JSR $E5C9      ; Pal numbers loc
C3/E527:	20C7E4  	JSR $E4C7      ; Convert M7 GFX B
C3/E52A:	2030E5  	JSR $E530      ; Insert tilemap B
C3/E52D:	4CB1E5  	JMP $E5B1      ; Upload M7 map B

Assemble half of tilemap for sea with boat
C3/E530:	20E4E5  	JSR $E5E4      ; Set ptrs loc
C3/E533:	A2FA2C  	LDX #$2CFA     ; Tiles loc
C3/E536:	86F1    	STX $F1        ; Set src LBs
C3/E538:	A97F    	LDA #$7F       ; Bank: 7F
C3/E53A:	85F3    	STA $F3        ; Set src HB
C3/E53C:	4C6BE6  	JMP $E66B      ; Build map

Unpack and upload graphics and tilemaps for skimming airship scene
C3/E53F:	20C9E3  	JSR $E3C9      ; Upload font GFX
C3/E542:	20F9E5  	JSR $E5F9      ; Unpack map, GFX
C3/E545:	203BE6  	JSR $E63B      ; Upload sprites
C3/E548:	20C9E5  	JSR $E5C9      ; Pal numbers loc
C3/E54B:	20B7E4  	JSR $E4B7      ; Convert M7 GFX A
C3/E54E:	2060E5  	JSR $E560      ; Insert tilemap A
C3/E551:	2099E5  	JSR $E599      ; Upload M7 map A
C3/E554:	20C9E5  	JSR $E5C9      ; Pal numbers loc
C3/E557:	20C7E4  	JSR $E4C7      ; Convert M7 GFX B
C3/E55A:	2060E5  	JSR $E560      ; Insert tilemap B
C3/E55D:	4CB1E5  	JMP $E5B1      ; Upload M7 map B

Assemble half of tilemap for sea without boat
C3/E560:	20EBE5  	JSR $E5EB      ; Set ptrs loc
C3/E563:	A2FA2C  	LDX #$2CFA     ; Tiles loc
C3/E566:	86F1    	STX $F1        ; Set src LBs
C3/E568:	A97F    	LDA #$7F       ; Bank: 7F
C3/E56A:	85F3    	STA $F3        ; Set src HB
C3/E56C:	4C6BE6  	JMP $E66B      ; Build map

Unpack and upload graphics and tilemaps for final airship scene
C3/E56F:	2016E6  	JSR $E616      ; Unpack map, GFX
C3/E572:	20D0E5  	JSR $E5D0      ; Pal numbers loc
C3/E575:	20B7E4  	JSR $E4B7      ; Convert M7 GFX A
C3/E578:	208AE5  	JSR $E58A      ; Insert tilemap
C3/E57B:	2099E5  	JSR $E599      ; Upload M7 map A
C3/E57E:	20D0E5  	JSR $E5D0      ; Pal numbers loc
C3/E581:	20C7E4  	JSR $E4C7      ; Convert M7 GFX B
C3/E584:	208AE5  	JSR $E58A      ; Insert tilemap B
C3/E587:	4CB1E5  	JMP $E5B1      ; Upload M7 map B

Assemble half of tilemap for final airship scene
C3/E58A:	20DAE5  	JSR $E5DA      ; Set ptrs loc
C3/E58D:	A21A04  	LDX #$041A     ; Tiles loc
C3/E590:	86F1    	STX $F1        ; Set src LBs
C3/E592:	A97F    	LDA #$7F       ; Bank: 7F
C3/E594:	85F3    	STA $F3        ; Set src HB
C3/E596:	4C6BE6  	JMP $E66B      ; Build map

Upload upper half of Mode 7 map
C3/E599:	A000B8  	LDY #$B800     ; 7F/B800
C3/E59C:	84E7    	STY $E7        ; Set src LBs
C3/E59E:	A97F    	LDA #$7F       ; Bank: 7F
C3/E5A0:	85E9    	STA $E9        ; Set src HB
C3/E5A2:	64ED    	STZ $ED        ; Attrib LB: 0
C3/E5A4:	64EE    	STZ $EE        ; Attrib HB: 0
C3/E5A6:	A00040  	LDY #$4000     ; Bytes: 16384
C3/E5A9:	84EB    	STY $EB        ; Set data size
C3/E5AB:	A00000  	LDY #$0000     ; VRAM pointer
C3/E5AE:	4C09ED  	JMP $ED09      ; Upload map

Upload lower half of Mode 7 map
C3/E5B1:	A000B8  	LDY #$B800     ; 7F/B800
C3/E5B4:	84E7    	STY $E7        ; Set src LBs
C3/E5B6:	A97F    	LDA #$7F       ; Bank: 7F
C3/E5B8:	85E9    	STA $E9        ; Set src HB
C3/E5BA:	64ED    	STZ $ED        ; Attrib LB: 0
C3/E5BC:	64EE    	STZ $EE        ; Attrib HB: 0
C3/E5BE:	A00040  	LDY #$4000     ; Bytes: 16384
C3/E5C1:	84EB    	STY $EB        ; Set data size
C3/E5C3:	A00020  	LDY #$2000     ; VRAM pointer
C3/E5C6:	4C09ED  	JMP $ED09      ; Upload map

Set palette index table location for plains or sea
C3/E5C9:	A291F9  	LDX #$F991     ; Ptrs loc LBs
C3/E5CC:	A9CF    	LDA #$CF       ; Ptrs loc HB
C3/E5CE:	8005    	BRA $E5D5      ; Set pointer

Set palette index table location for sky scenes
C3/E5D0:	A219F9  	LDX #$F919     ; CF/F919
C3/E5D3:	A9CF    	LDA #$CF       ; Bank: CF
C3/E5D5:	8691    	STX $91        ; Set loc LBs
C3/E5D7:	8593    	STA $93        ; Set loc HB
C3/E5D9:	60      	RTS

Set tilemap pointer table location for final scenes
C3/E5DA:	A299FA  	LDX #$FA99     ; CF/FA99
C3/E5DD:	A9CF    	LDA #$CF       ; Bank: CF
C3/E5DF:	86F7    	STX $F7        ; Set loc LBs
C3/E5E1:	85F9    	STA $F9        ; Set loc HB
C3/E5E3:	60      	RTS

Set tilemap pointer table location for boat scene
C3/E5E4:	A279FA  	LDX #$FA79     ; Table loc LBs
C3/E5E7:	A9CF    	LDA #$CF       ; Table loc HB
C3/E5E9:	80F4    	BRA $E5DF      ; Set pointer

Set tilemap pointer table location for skimming airship and cloud scenes
C3/E5EB:	A259FA  	LDX #$FA59     ; Table loc LBs
C3/E5EE:	A9CF    	LDA #$CF       ; Table loc HB
C3/E5F0:	80ED    	BRA $E5DF      ; Set pointer

Set tilemap pointer table location for sideview airship scene
C3/E5F2:	A2B9FA  	LDX #$FAB9     ; Table loc LBs
C3/E5F5:	A9CF    	LDA #$CF       ; Table loc HB
C3/E5F7:	80E6    	BRA $E5DF      ; Set pointer

Unpack credits scene GFX and maps, move ocean and grassfield GFX
C3/E5F9:	2033E6  	JSR $E633      ; Unpack data
C3/E5FC:	A21A14  	LDX #$141A     ; 7F/141A
C3/E5FF:	86E7    	STX $E7        ; Set src LBs
C3/E601:	A97F    	LDA #$7F       ; Bank: 7F
C3/E603:	85E9    	STA $E9        ; Set src HB
C3/E605:	A00098  	LDY #$9800     ; 7F/9800
C3/E608:	84EB    	STY $EB        ; Set dst LBs
C3/E60A:	A97F    	LDA #$7F       ; Bank: 7F
C3/E60C:	85ED    	STA $ED        ; Set dst HB
C3/E60E:	A0E018  	LDY #$18E0     ; Bytes: 6368
C3/E611:	84EF    	STY $EF        ; Set data size
C3/E613:	4C53E6  	JMP $E653      ; Move data

Unpack credits scene GFX and tilemaps, move cloud and BG airship GFX
C3/E616:	2033E6  	JSR $E633      ; Unpack data
C3/E619:	A23AED  	LDX #$ED3A     ; 7E/ED3A
C3/E61C:	86E7    	STX $E7        ; Set src LBs
C3/E61E:	A97E    	LDA #$7E       ; Bank: 7E
C3/E620:	85E9    	STA $E9        ; Set src HB
C3/E622:	A00098  	LDY #$9800     ; 7F/9800
C3/E625:	84EB    	STY $EB        ; Set dst LBs
C3/E627:	A97F    	LDA #$7F       ; Bank: 7F
C3/E629:	85ED    	STA $ED        ; Set dst HB
C3/E62B:	A0E00E  	LDY #$0EE0     ; Bytes: 3808
C3/E62E:	84EF    	STY $EF        ; Set data size
C3/E630:	4C53E6  	JMP $E653      ; Move data

Unpack non-font graphics for credits scenes
C3/E633:	A08F56  	LDY #$568F     ; Source LBs
C3/E636:	A9D9    	LDA #$D9       ; Source HB
C3/E638:	4CB1EC  	JMP $ECB1      ; Unpack data

Upload non-font sprite graphics for credits scenes
C3/E63B:	A000C0  	LDY #$C000     ; 7E/C000
C3/E63E:	84E7    	STY $E7        ; Set src LBs
C3/E640:	A97E    	LDA #$7E       ; Bank: 7E
C3/E642:	85E9    	STA $E9        ; Set src HB
C3/E644:	A0BA17  	LDY #$17BA     ; Bytes: 6074
C3/E647:	84EB    	STY $EB        ; Set data size
C3/E649:	64ED    	STZ $ED        ; Attrib LB: 0
C3/E64B:	64EE    	STZ $EE        ; Attrib HB: 0
C3/E64D:	A00060  	LDY #$6000     ; VRAM pointer
C3/E650:	4C09ED  	JMP $ED09      ; Upload data

Relocate decompressed data, adjust attributes if tilemap
C3/E653:	64F1    	STZ $F1        ; ...
C3/E655:	64F2    	STZ $F2        ; ...
C3/E657:	C220    	REP #$20       ; 16-bit A
C3/E659:	A400    	LDY $00        ; Index: 0
C3/E65B:	B7E7    	LDA [$E7],Y    ; Unpacked data
C3/E65D:	18      	CLC            ; ...
C3/E65E:	65F1    	ADC $F1        ; ...
C3/E660:	97EB    	STA [$EB],Y    ; Put in buffer
C3/E662:	C8      	INY            ; Index +1
C3/E663:	C8      	INY            ; Index +1
C3/E664:	C4EF    	CPY $EF        ; Past range?
C3/E666:	D0F3    	BNE $E65B      ; Loop if not
C3/E668:	E220    	SEP #$20       ; 8-bit A
C3/E66A:	60      	RTS

Add a 128x64 tilemap to Mode 7 map
C3/E66B:	7B      	TDC            ; Clear A
C3/E66C:	A8      	TAY            ; Index: 0
C3/E66D:	C220    	REP #$20       ; 16-bit A
C3/E66F:	B7F7    	LDA [$F7],Y    ; Src index
C3/E671:	AA      	TAX            ; Save in X
C3/E672:	C8      	INY            ; Index +1
C3/E673:	C8      	INY            ; Index +1
C3/E674:	B7F7    	LDA [$F7],Y    ; Dst index
C3/E676:	85E7    	STA $E7        ; Memorize it
C3/E678:	C8      	INY            ; Index +1
C3/E679:	C8      	INY            ; Index +1
C3/E67A:	E220    	SEP #$20       ; 8-bit A
C3/E67C:	5A      	PHY            ; Save index
C3/E67D:	9B      	TXY            ; Src index
C3/E67E:	2088E6  	JSR $E688      ; Copy 32x32 map
C3/E681:	7A      	PLY            ; Restore index
C3/E682:	C02000  	CPY #$0020     ; Done 8 maps?
C3/E685:	D0E6    	BNE $E66D      ; Loop if not
C3/E687:	60      	RTS

Add a 32x32 tilemap to Mode 7 map
C3/E688:	8B      	PHB            ; Save DB
C3/E689:	A97F    	LDA #$7F       ; Bank: 7F
C3/E68B:	48      	PHA            ; Put on stack
C3/E68C:	AB      	PLB            ; Set DB to 7F
C3/E68D:	A920    	LDA #$20       ; Rows: 32
C3/E68F:	85E0    	STA $E0        ; Set counter
C3/E691:	A920    	LDA #$20       ; Columns: 32
C3/E693:	85E1    	STA $E1        ; Set counter
C3/E695:	A6E7    	LDX $E7        ; Dst index
C3/E697:	B7F1    	LDA [$F1],Y    ; Tile number
C3/E699:	9D00B8  	STA $B800,X    ; Add to M7 map
C3/E69C:	C8      	INY            ; Src index +1
C3/E69D:	E8      	INX            ; Dst index +1
C3/E69E:	E8      	INX            ; Dst index +1
C3/E69F:	C6E1    	DEC $E1        ; One less column
C3/E6A1:	D0F4    	BNE $E697      ; Loop till last
C3/E6A3:	C221    	REP #$21       ; 16-bit A; C-
C3/E6A5:	A5E7    	LDA $E7        ; Dst index
C3/E6A7:	690001  	ADC #$0100     ; +128 tiles
C3/E6AA:	85E7    	STA $E7        ; Save changes
C3/E6AC:	E220    	SEP #$20       ; 8-bit A
C3/E6AE:	C6E0    	DEC $E0        ; One less row
C3/E6B0:	D0DF    	BNE $E691      ; Loop till last
C3/E6B2:	AB      	PLB            ; Restore DB
C3/E6B3:	60      	RTS

Add 4bpp tile graphics to Mode 7 map
C3/E6B4:	85E9    	STA $E9        ; Set src HB
C3/E6B6:	86E7    	STX $E7        ; Set src LBs
C3/E6B8:	8B      	PHB            ; Save DB
C3/E6B9:	A97F    	LDA #$7F       ; Bank: 7F
C3/E6BB:	48      	PHA            ; Put on stack
C3/E6BC:	AB      	PLB            ; Set DB to 7F
C3/E6BD:	7B      	TDC            ; Clear A
C3/E6BE:	AA      	TAX            ; Dst index: 0
C3/E6BF:	A908    	LDA #$08       ; Rows left: 8
C3/E6C1:	85E6    	STA $E6        ; Set counter

Fork: Load 8-pixel row
C3/E6C3:	C220    	REP #$20       ; 16-bit A
C3/E6C5:	A01000  	LDY #$0010     ; Src index: 16
C3/E6C8:	A7E7    	LDA [$E7]      ; Planes A & B
C3/E6CA:	85F1    	STA $F1        ; Memorize them
C3/E6CC:	B7E7    	LDA [$E7],Y    ; Planes C & D
C3/E6CE:	85EF    	STA $EF        ; Memorize them
C3/E6D0:	7B      	TDC            ; ...
C3/E6D1:	E220    	SEP #$20       ; 8-bit A

Fork: Convert each pixel in row
C3/E6D3:	A00800  	LDY #$0008     ; Pixels: 8
C3/E6D6:	7B      	TDC            ; Clear A
C3/E6D7:	06F0    	ASL $F0        ; Get plane D
C3/E6D9:	2A      	ROL A          ; Roll into A
C3/E6DA:	06EF    	ASL $EF        ; Get plane C
C3/E6DC:	2A      	ROL A          ; Roll into A
C3/E6DD:	06F2    	ASL $F2        ; Get plane B
C3/E6DF:	2A      	ROL A          ; Roll into A
C3/E6E0:	06F1    	ASL $F1        ; Get plane A
C3/E6E2:	2A      	ROL A          ; Roll into A
C3/E6E3:	290F    	AND #$0F       ; Blank pixel?
C3/E6E5:	F010    	BEQ $E6F7      ; Branch if so
C3/E6E7:	85E0    	STA $E0        ; Save 0-15 color
C3/E6E9:	5A      	PHY            ; Save pixels left
C3/E6EA:	A4E4    	LDY $E4        ; Palette index
C3/E6EC:	B791    	LDA [$91],Y    ; Palette number
C3/E6EE:	7A      	PLY            ; Pixels left
C3/E6EF:	0A      	ASL A          ; Palette x2
C3/E6F0:	0A      	ASL A          ; Palette x4
C3/E6F1:	0A      	ASL A          ; Palette x8
C3/E6F2:	0A      	ASL A          ; Palette x16
C3/E6F3:	29F0    	AND #$F0       ; ...
C3/E6F5:	05E0    	ORA $E0        ; Add 0-15 color
C3/E6F7:	9D01B8  	STA $B801,X    ; Set map pixel
C3/E6FA:	E8      	INX            ; Dst index +1
C3/E6FB:	E8      	INX            ; Dst index +1
C3/E6FC:	88      	DEY            ; One less pixel
C3/E6FD:	D0D7    	BNE $E6D6      ; Loop till last

Fork: Do tile's next row
C3/E6FF:	A4E7    	LDY $E7        ; Source
C3/E701:	C8      	INY            ; Source +1
C3/E702:	C8      	INY            ; Source +1
C3/E703:	84E7    	STY $E7        ; Save changes
C3/E705:	C6E6    	DEC $E6        ; One less row
C3/E707:	D0BA    	BNE $E6C3      ; Loop till last

Fork: Do next tile
C3/E709:	C220    	REP #$20       ; 16-bit A
C3/E70B:	E6E4    	INC $E4        ; Pal index +1
C3/E70D:	A5E7    	LDA $E7        ; Source
C3/E70F:	18      	CLC            ; Prepare ADC
C3/E710:	691000  	ADC #$0010     ; Skip done data
C3/E713:	85E7    	STA $E7        ; Save changes
C3/E715:	7B      	TDC            ; Clear A
C3/E716:	E220    	SEP #$20       ; 8-bit A
C3/E718:	C6ED    	DEC $ED        ; One less tile
C3/E71A:	D0A3    	BNE $E6BF      ; Loop till last
C3/E71C:	AB      	PLB            ; Restore DB
C3/E71D:	60      	RTS

Handle credits timing for sideview airship scene
C3/E71E:	8B      	PHB            ; Save DB
C3/E71F:	A9C3    	LDA #$C3       ; ...
C3/E721:	48      	PHA            ; ...
C3/E722:	AB      	PLB            ; ...
C3/E723:	A4CF    	LDY $CF        ; Scene timer
C3/E725:	C03C00  	CPY #$003C     ; 60?
C3/E728:	D003    	BNE $E72D      ; Exit if not
C3/E72A:	205EE9  	JSR $E95E      ; Init producer
C3/E72D:	AB      	PLB            ; Restore DB
C3/E72E:	38      	SEC            ; Set to requeue
C3/E72F:	60      	RTS

Handle credits timing for aerial-view airship scene
C3/E730:	8B      	PHB            ; Save DB
C3/E731:	A9C3    	LDA #$C3       ; ...
C3/E733:	48      	PHA            ; ...
C3/E734:	AB      	PLB            ; ...
C3/E735:	A4CF    	LDY $CF        ; Scene timer
C3/E737:	C00A00  	CPY #$000A     ; 10?
C3/E73A:	D005    	BNE $E741      ; Branch if not
C3/E73C:	2069E9  	JSR $E969      ; Init director
C3/E73F:	803A    	BRA $E77B      ; Exit

Fork: Main programmer
C3/E741:	C0AE01  	CPY #$01AE     ; 430?
C3/E744:	D005    	BNE $E74B      ; Branch if not
C3/E746:	2074E9  	JSR $E974      ; Init sprites
C3/E749:	8030    	BRA $E77B      ; Exit

Fork: Graphic director (page 1)
C3/E74B:	C05203  	CPY #$0352     ; 850?
C3/E74E:	D005    	BNE $E755      ; Branch if not
C3/E750:	207FE9  	JSR $E97F      ; Init sprites
C3/E753:	8026    	BRA $E77B      ; Exit

Fork: Graphic director (page 2)
C3/E755:	C0F604  	CPY #$04F6     ; 1270?
C3/E758:	D005    	BNE $E75F      ; Branch if not
C3/E75A:	208AE9  	JSR $E98A      ; Init sprites
C3/E75D:	801C    	BRA $E77B      ; Exit

Fork: Music
C3/E75F:	C09A06  	CPY #$069A     ; 1690?
C3/E762:	D005    	BNE $E769      ; Branch if not
C3/E764:	2095E9  	JSR $E995      ; Init sprites
C3/E767:	8012    	BRA $E77B      ; Exit

Fork: Image design
C3/E769:	C03E08  	CPY #$083E     ; 2110?
C3/E76C:	D005    	BNE $E773      ; Branch if not
C3/E76E:	20A0E9  	JSR $E9A0      ; Init sprites
C3/E771:	8008    	BRA $E77B      ; Exit

Fork: Battle planner
C3/E773:	C0E209  	CPY #$09E2     ; 2530?
C3/E776:	D003    	BNE $E77B      ; Exit if not
C3/E778:	20ABE9  	JSR $E9AB      ; Init sprites
C3/E77B:	AB      	PLB            ; Restore DB
C3/E77C:	38      	SEC            ; Set to requeue
C3/E77D:	60      	RTS

Handle credits timing for boat scene
C3/E77E:	8B      	PHB            ; Save DB
C3/E77F:	A9C3    	LDA #$C3       ; ...
C3/E781:	48      	PHA            ; ...
C3/E782:	AB      	PLB            ; ...
C3/E783:	A4CF    	LDY $CF        ; Scene timer
C3/E785:	C00A00  	CPY #$000A     ; 10?
C3/E788:	D005    	BNE $E78F      ; Branch if not
C3/E78A:	20B6E9  	JSR $E9B6      ; Init field pln
C3/E78D:	801C    	BRA $E7AB      ; Exit

Fork: Event planner
C3/E78F:	C0AE01  	CPY #$01AE     ; 430?
C3/E792:	D005    	BNE $E799      ; Branch if not
C3/E794:	20C1E9  	JSR $E9C1      ; Init sprites
C3/E797:	8012    	BRA $E7AB      ; Exit

Fork: Effect programmer
C3/E799:	C05203  	CPY #$0352     ; 850?
C3/E79C:	D005    	BNE $E7A3      ; Branch if not
C3/E79E:	20CCE9  	JSR $E9CC      ; Init sprites
C3/E7A1:	8008    	BRA $E7AB      ; Exit

Fork: Battle programmer
C3/E7A3:	C0F604  	CPY #$04F6     ; 1270?
C3/E7A6:	D003    	BNE $E7AB      ; Exit if not
C3/E7A8:	20D7E9  	JSR $E9D7      ; Init sprites
C3/E7AB:	AB      	PLB            ; Restore DB
C3/E7AC:	38      	SEC            ; Set to requeue
C3/E7AD:	60      	RTS

Handle credits timing for skimming airship scene
C3/E7AE:	8B      	PHB            ; Save DB
C3/E7AF:	A9C3    	LDA #$C3       ; ...
C3/E7B1:	48      	PHA            ; ...
C3/E7B2:	AB      	PLB            ; ...
C3/E7B3:	A4CF    	LDY $CF        ; Scene timer
C3/E7B5:	C00A00  	CPY #$000A     ; 10?
C3/E7B8:	D005    	BNE $E7BF      ; Branch if not
C3/E7BA:	20E2E9  	JSR $E9E2      ; Init sound prg
C3/E7BD:	803A    	BRA $E7F9      ; Exit

Fork: Effect graphic designer
C3/E7BF:	C0AE01  	CPY #$01AE     ; 430?
C3/E7C2:	D005    	BNE $E7C9      ; Branch if not
C3/E7C4:	20EDE9  	JSR $E9ED      ; Init sprites
C3/E7C7:	8030    	BRA $E7F9      ; Exit

Fork: Field graphic designer (page 1)
C3/E7C9:	C05203  	CPY #$0352     ; 850?
C3/E7CC:	D005    	BNE $E7D3      ; Branch if not
C3/E7CE:	20F8E9  	JSR $E9F8      ; Init sprites
C3/E7D1:	8026    	BRA $E7F9      ; Exit

Fork: Field graphic designer (page 2)
C3/E7D3:	C0F604  	CPY #$04F6     ; 1270?
C3/E7D6:	D005    	BNE $E7DD      ; Branch if not
C3/E7D8:	2003EA  	JSR $EA03      ; Init sprites
C3/E7DB:	801C    	BRA $E7F9      ; Exit

Fork: Field graphic designer (page 3)
C3/E7DD:	C09A06  	CPY #$069A     ; 1690?
C3/E7E0:	D005    	BNE $E7E7      ; Branch if not
C3/E7E2:	200EEA  	JSR $EA0E      ; Init sprites
C3/E7E5:	8012    	BRA $E7F9      ; Exit

Fork: Monster graphic designer
C3/E7E7:	C03E08  	CPY #$083E     ; 2110?
C3/E7EA:	D005    	BNE $E7F1      ; Branch if not
C3/E7EC:	2019EA  	JSR $EA19      ; Init sprites
C3/E7EF:	8008    	BRA $E7F9      ; Exit

Fork: Object graphic designer
C3/E7F1:	C0E209  	CPY #$09E2     ; 2530?
C3/E7F4:	D003    	BNE $E7F9      ; Exit if not
C3/E7F6:	2024EA  	JSR $EA24      ; Init sprites
C3/E7F9:	AB      	PLB            ; Restore DB
C3/E7FA:	38      	SEC            ; Set to requeue
C3/E7FB:	60      	RTS

Handle credits timing for frontview airship scene
C3/E7FC:	8B      	PHB            ; Save DB
C3/E7FD:	A9C3    	LDA #$C3       ; ...
C3/E7FF:	48      	PHA            ; ...
C3/E800:	AB      	PLB            ; ...
C3/E801:	A4CF    	LDY $CF        ; Scene timer
C3/E803:	C00A00  	CPY #$000A     ; 10?
C3/E806:	D005    	BNE $E80D      ; Branch if not
C3/E808:	202FEA  	JSR $EA2F      ; Init sound eng
C3/E80B:	803A    	BRA $E847      ; Exit

Fork: Sound effect (page 1)
C3/E80D:	C0AE01  	CPY #$01AE     ; 430?
C3/E810:	D005    	BNE $E817      ; Branch if not
C3/E812:	203AEA  	JSR $EA3A      ; Init sprites
C3/E815:	8030    	BRA $E847      ; Exit

Fork: Sound effect (page 2)
C3/E817:	C05203  	CPY #$0352     ; 850?
C3/E81A:	D005    	BNE $E821      ; Branch if not
C3/E81C:	2045EA  	JSR $EA45      ; Init sprites
C3/E81F:	8026    	BRA $E847      ; Exit

Fork: Remake planner
C3/E821:	C0F604  	CPY #$04F6     ; 1270?
C3/E824:	D005    	BNE $E82B      ; Branch if not
C3/E826:	2050EA  	JSR $EA50      ; Init sprites
C3/E829:	801C    	BRA $E847      ; Exit

Fork: System engineer (page 1)
C3/E82B:	C09A06  	CPY #$069A     ; 1690?
C3/E82E:	D005    	BNE $E835      ; Branch if not
C3/E830:	205BEA  	JSR $EA5B      ; Init sprites
C3/E833:	8012    	BRA $E847      ; Exit

Fork: System engineer (page 2)
C3/E835:	C03E08  	CPY #$083E     ; 2110?
C3/E838:	D005    	BNE $E83F      ; Branch if not
C3/E83A:	2066EA  	JSR $EA66      ; Init sprites
C3/E83D:	8008    	BRA $E847      ; Exit

Fork: Executive producer
C3/E83F:	C0E209  	CPY #$09E2     ; 2530?
C3/E842:	D003    	BNE $E847      ; Exit if not
C3/E844:	2071EA  	JSR $EA71      ; Init sprites
C3/E847:	AB      	PLB            ; Restore DB
C3/E848:	38      	SEC            ; Set to requeue
C3/E849:	60      	RTS

Handle credits timing for aerial-view plains scene
C3/E84A:	8B      	PHB            ; Save DB
C3/E84B:	A9C3    	LDA #$C3       ; ...
C3/E84D:	48      	PHA            ; ...
C3/E84E:	AB      	PLB            ; ...
C3/E84F:	A4CF    	LDY $CF        ; Scene timer
C3/E851:	C0F000  	CPY #$00F0     ; 240?
C3/E854:	D005    	BNE $E85B      ; Branch if not
C3/E856:	207CEA  	JSR $EA7C      ; Init test coord
C3/E859:	803A    	BRA $E895      ; Exit

Fork: Special thanks (page 1)
C3/E85B:	C0D002  	CPY #$02D0     ; 720?
C3/E85E:	D005    	BNE $E865      ; Branch if not
C3/E860:	2087EA  	JSR $EA87      ; Init sprites
C3/E863:	8030    	BRA $E895      ; Exit

Fork: Special thanks (page 2)
C3/E865:	C0B004  	CPY #$04B0     ; 1200?
C3/E868:	D005    	BNE $E86F      ; Branch if not
C3/E86A:	2092EA  	JSR $EA92      ; Init sprites
C3/E86D:	8026    	BRA $E895      ; Exit

Fork: Special thanks (page 3)
C3/E86F:	C09006  	CPY #$0690     ; 1680?
C3/E872:	D005    	BNE $E879      ; Branch if not
C3/E874:	209DEA  	JSR $EA9D      ; Init sprites
C3/E877:	801C    	BRA $E895      ; Exit

Fork: Special thanks (page 4)
C3/E879:	C07008  	CPY #$0870     ; 2160?
C3/E87C:	D005    	BNE $E883      ; Branch if not
C3/E87E:	20A8EA  	JSR $EAA8      ; Init sprites
C3/E881:	8012    	BRA $E895      ; Exit

Fork: Special thanks (page 5)
C3/E883:	C0500A  	CPY #$0A50     ; 2640?
C3/E886:	D005    	BNE $E88D      ; Branch if not
C3/E888:	20B3EA  	JSR $EAB3      ; Init sprites
C3/E88B:	8008    	BRA $E895      ; Exit

Fork: Special thanks (page 6)
C3/E88D:	C0300C  	CPY #$0C30     ; 3120?
C3/E890:	D003    	BNE $E895      ; Exit if not
C3/E892:	20BEEA  	JSR $EABE      ; Init sprites
C3/E895:	AB      	PLB            ; Restore DB
C3/E896:	38      	SEC            ; Set to requeue
C3/E897:	60      	RTS

Handle credits timing for rearview airship scene
C3/E898:	8B      	PHB            ; Save DB
C3/E899:	A9C3    	LDA #$C3       ; ...
C3/E89B:	48      	PHA            ; ...
C3/E89C:	AB      	PLB            ; ...
C3/E89D:	A4CF    	LDY $CF        ; Scene timer
C3/E89F:	C0F000  	CPY #$00F0     ; 240?
C3/E8A2:	D005    	BNE $E8A9      ; Branch if not
C3/E8A4:	20C9EA  	JSR $EAC9      ; Init thanks_p7
C3/E8A7:	801C    	BRA $E8C5      ; Exit

Fork: Special thanks (page 8)
C3/E8A9:	C0D002  	CPY #$02D0     ; 720?
C3/E8AC:	D005    	BNE $E8B3      ; Branch if not
C3/E8AE:	20D4EA  	JSR $EAD4      ; Init sprites
C3/E8B1:	8012    	BRA $E8C5      ; Exit

Fork: Special thanks (page 9)
C3/E8B3:	C0B004  	CPY #$04B0     ; 1200?
C3/E8B6:	D005    	BNE $E8BD      ; Branch if not
C3/E8B8:	20DFEA  	JSR $EADF      ; Init sprites
C3/E8BB:	8008    	BRA $E8C5      ; Exit

Fork: Special thanks (page 10)
C3/E8BD:	C09006  	CPY #$0690     ; 1680?
C3/E8C0:	D003    	BNE $E8C5      ; Exit if not
C3/E8C2:	20EAEA  	JSR $EAEA      ; Init sprites
C3/E8C5:	AB      	PLB            ; Restore DB
C3/E8C6:	38      	SEC            ; Set to requeue
C3/E8C7:	60      	RTS

Build credits' OAM table for sideview airship scene
C3/E8C8:	A2A49D  	LDX #$9DA4     ; Source LBs
C3/E8CB:	A9C2    	LDA #$C2       ; Source HB
C3/E8CD:	A00400  	LDY #$0004     ; Sprites: 1
C3/E8D0:	204CE9  	JSR $E94C      ; Do position
C3/E8D3:	A2309C  	LDX #$9C30     ; Source LBs
C3/E8D6:	A9C2    	LDA #$C2       ; Source HB
C3/E8D8:	A00800  	LDY #$0008     ; Sprites: 2
C3/E8DB:	4C55E9  	JMP $E955      ; Do staff

Build credits' OAM table for aerial-view airship scene
C3/E8DE:	A2A89D  	LDX #$9DA8     ; Source LBs
C3/E8E1:	A9C2    	LDA #$C2       ; Source HB
C3/E8E3:	A02800  	LDY #$0028     ; Sprites: 10
C3/E8E6:	204CE9  	JSR $E94C      ; Do positions
C3/E8E9:	A2389C  	LDX #$9C38     ; Source LBs
C3/E8EC:	A9C2    	LDA #$C2       ; Source HB
C3/E8EE:	A06000  	LDY #$0060     ; Sprites: 24
C3/E8F1:	4C55E9  	JMP $E955      ; Do staff

Build credits' OAM table for boat scene
C3/E8F4:	A2D09D  	LDX #$9DD0     ; Source LBs
C3/E8F7:	A9C2    	LDA #$C2       ; Source HB
C3/E8F9:	A01800  	LDY #$0018     ; Sprites: 6
C3/E8FC:	204CE9  	JSR $E94C      ; Do positions
C3/E8FF:	A2989C  	LDX #$9C98     ; Source LBs
C3/E902:	A9C2    	LDA #$C2       ; Source HB
C3/E904:	A04000  	LDY #$0040     ; Sprites: 16
C3/E907:	4C55E9  	JMP $E955      ; Do staff

Build credits' OAM table for skimming airship scene
C3/E90A:	A2E89D  	LDX #$9DE8     ; Source LBs
C3/E90D:	A9C2    	LDA #$C2       ; Source HB
C3/E90F:	A02000  	LDY #$0020     ; Sprites: 8
C3/E912:	204CE9  	JSR $E94C      ; Do positions
C3/E915:	A2D89C  	LDX #$9CD8     ; Source LBs
C3/E918:	A9C2    	LDA #$C2       ; Source HB
C3/E91A:	A06400  	LDY #$0064     ; Sprites: 25
C3/E91D:	4C55E9  	JMP $E955      ; Do staff

Build credits' OAM table for frontview airship scene
C3/E920:	A2089E  	LDX #$9E08     ; Source LBs
C3/E923:	A9C2    	LDA #$C2       ; Source HB
C3/E925:	A02000  	LDY #$0020     ; Sprites: 8
C3/E928:	204CE9  	JSR $E94C      ; Do positions
C3/E92B:	A23C9D  	LDX #$9D3C     ; Source LBs
C3/E92E:	A9C2    	LDA #$C2       ; Source HB
C3/E930:	A06800  	LDY #$0068     ; Sprites: 26
C3/E933:	4C55E9  	JMP $E955      ; Do staff

Build credits' OAM table for aerial-view plains scene
C3/E936:	A2289E  	LDX #$9E28     ; Source LBs
C3/E939:	A9C2    	LDA #$C2       ; Source HB
C3/E93B:	A0E800  	LDY #$00E8     ; Sprites: 58
C3/E93E:	4C4CE9  	JMP $E94C      ; Build OAM

Build credits' OAM table for rearview airship scene
C3/E941:	A2109F  	LDX #$9F10     ; Source LBs
C3/E944:	A9C2    	LDA #$C2       ; Source HB
C3/E946:	A06800  	LDY #$0068     ; Sprites: 26
C3/E949:	4C4CE9  	JMP $E94C      ; ...

Build OAM table for scene's small credits strings; set source
C3/E94C:	864A    	STX $4A        ; Set src LBs
C3/E94E:	854C    	STA $4C        ; Set src HB
C3/E950:	844D    	STY $4D        ; Set range end
C3/E952:	4C18EB  	JMP $EB18      ; Build tables

Build OAM table for scene's large credits strings; set source
C3/E955:	864A    	STX $4A        ; Set src LBs
C3/E957:	854C    	STA $4C        ; Set src HB
C3/E959:	844D    	STY $4D        ; Set range end
C3/E95B:	4C38EB  	JMP $EB38      ; Build tables

Initialize credits for producer
C3/E95E:	A00C00  	LDY #$000C     ; Sprites: 3
C3/E961:	A28C98  	LDX #$988C     ; Source LBs
C3/E964:	A9C2    	LDA #$C2       ; Source HB
C3/E966:	4CF5EA  	JMP $EAF5      ; Init sprites

Initialize credits for director
C3/E969:	A01400  	LDY #$0014     ; Sprites: 5
C3/E96C:	A29898  	LDX #$9898     ; Source LBs
C3/E96F:	A9C2    	LDA #$C2       ; Source HB
C3/E971:	4CF5EA  	JMP $EAF5      ; Init sprites

Initialize credits for main programmer
C3/E974:	A01800  	LDY #$0018     ; Sprites: 6
C3/E977:	A2AC98  	LDX #$98AC     ; Source LBs
C3/E97A:	A9C2    	LDA #$C2       ; Source HB
C3/E97C:	4CF5EA  	JMP $EAF5      ; Init sprites

Initialize credits for graphic director, page 1
C3/E97F:	A01800  	LDY #$0018     ; Sprites: 6
C3/E982:	A2C498  	LDX #$98C4     ; Source LBs
C3/E985:	A9C2    	LDA #$C2       ; Source HB
C3/E987:	4CF5EA  	JMP $EAF5      ; Init sprites

Initialize credits for graphic director, page 2
C3/E98A:	A01800  	LDY #$0018     ; Sprites: 6
C3/E98D:	A2DC98  	LDX #$98DC     ; Source LBs
C3/E990:	A9C2    	LDA #$C2       ; Source HB
C3/E992:	4CF5EA  	JMP $EAF5      ; Init sprites

Initialize credits for music
C3/E995:	A00C00  	LDY #$000C     ; Sprites: 3
C3/E998:	A2F498  	LDX #$98F4     ; Source LBs
C3/E99B:	A9C2    	LDA #$C2       ; Source HB
C3/E99D:	4CF5EA  	JMP $EAF5      ; Init sprites

Initialize credits for image design
C3/E9A0:	A01000  	LDY #$0010     ; Sprites: 4
C3/E9A3:	A20099  	LDX #$9900     ; Source LBs
C3/E9A6:	A9C2    	LDA #$C2       ; Source HB
C3/E9A8:	4CF5EA  	JMP $EAF5      ; Init sprites

Initialize credits for battle planner
C3/E9AB:	A01800  	LDY #$0018     ; Sprites: 6
C3/E9AE:	A21099  	LDX #$9910     ; Source LBs
C3/E9B1:	A9C2    	LDA #$C2       ; Source HB
C3/E9B3:	4CF5EA  	JMP $EAF5      ; Init sprites

Initialize credits for field planner
C3/E9B6:	A02000  	LDY #$0020     ; Sprites: 8
C3/E9B9:	A22899  	LDX #$9928     ; Source LBs
C3/E9BC:	A9C2    	LDA #$C2       ; Source HB
C3/E9BE:	4CF5EA  	JMP $EAF5      ; Init sprites

Initialize credits for event planner
C3/E9C1:	A01800  	LDY #$0018     ; Sprites: 6
C3/E9C4:	A24899  	LDX #$9948     ; Source LBs
C3/E9C7:	A9C2    	LDA #$C2       ; Source HB
C3/E9C9:	4CF5EA  	JMP $EAF5      ; Init sprites

Initialize credits for effect programmer
C3/E9CC:	A01800  	LDY #$0018     ; Sprites: 6
C3/E9CF:	A26099  	LDX #$9960     ; Source LBs
C3/E9D2:	A9C2    	LDA #$C2       ; Source HB
C3/E9D4:	4CF5EA  	JMP $EAF5      ; Init sprites

Initialize credits for battle programmer
C3/E9D7:	A01000  	LDY #$0010     ; Sprites: 4
C3/E9DA:	A27899  	LDX #$9978     ; Source LBs
C3/E9DD:	A9C2    	LDA #$C2       ; Source HB
C3/E9DF:	4CF5EA  	JMP $EAF5      ; Init sprites

Initialize credits for sound programmer
C3/E9E2:	A01000  	LDY #$0010     ; Sprites: 4
C3/E9E5:	A28899  	LDX #$9988     ; Source LBs
C3/E9E8:	A9C2    	LDA #$C2       ; Source HB
C3/E9EA:	4CF5EA  	JMP $EAF5      ; Init sprites

Initialize credits for effect graphic designer
C3/E9ED:	A01400  	LDY #$0014     ; Sprites: 5
C3/E9F0:	A29899  	LDX #$9998     ; Source LBs
C3/E9F3:	A9C2    	LDA #$C2       ; Source HB
C3/E9F5:	4CF5EA  	JMP $EAF5      ; Init sprites

Initialize credits for field graphic designer, page 1
C3/E9F8:	A02400  	LDY #$0024     ; Sprites: 9
C3/E9FB:	A2AC99  	LDX #$99AC     ; Source LBs
C3/E9FE:	A9C2    	LDA #$C2       ; Source HB
C3/EA00:	4CF5EA  	JMP $EAF5      ; Init sprites

Initialize credits for field graphic designer, page 2
C3/EA03:	A02400  	LDY #$0024     ; Sprites: 9
C3/EA06:	A2D099  	LDX #$99D0     ; Source LBs
C3/EA09:	A9C2    	LDA #$C2       ; Source HB
C3/EA0B:	4CF5EA  	JMP $EAF5      ; Init sprites

Initialize credits for field graphic designer, page 3
C3/EA0E:	A02400  	LDY #$0024     ; Sprites: 9
C3/EA11:	A2F499  	LDX #$99F4     ; Source LBs
C3/EA14:	A9C2    	LDA #$C2       ; Source HB
C3/EA16:	4CF5EA  	JMP $EAF5      ; Init sprites

Initialize credits for monster graphic designer
C3/EA19:	A01400  	LDY #$0014     ; Sprites: 5
C3/EA1C:	A2189A  	LDX #$9A18     ; Source LBs
C3/EA1F:	A9C2    	LDA #$C2       ; Source HB
C3/EA21:	4CF5EA  	JMP $EAF5      ; Init sprites

Initialize credits for object graphic designer
C3/EA24:	A01400  	LDY #$0014     ; Sprites: 5
C3/EA27:	A22C9A  	LDX #$9A2C     ; Source LBs
C3/EA2A:	A9C2    	LDA #$C2       ; Source HB
C3/EA2C:	4CF5EA  	JMP $EAF5      ; Init sprites

Initialize credits for sound engineer
C3/EA2F:	A01000  	LDY #$0010     ; Sprites: 4
C3/EA32:	A2409A  	LDX #$9A40     ; Source LBs
C3/EA35:	A9C2    	LDA #$C2       ; Source HB
C3/EA37:	4CF5EA  	JMP $EAF5      ; Init sprites

Initialize credits for sound effect, page 1
C3/EA3A:	A01800  	LDY #$0018     ; Sprites: 6
C3/EA3D:	A2509A  	LDX #$9A50     ; Source LBs
C3/EA40:	A9C2    	LDA #$C2       ; Source HB
C3/EA42:	4CF5EA  	JMP $EAF5      ; Init sprites

Initialize credits for sound effect, page 2
C3/EA45:	A01800  	LDY #$0018     ; Sprites: 6
C3/EA48:	A2689A  	LDX #$9A68     ; Source LBs
C3/EA4B:	A9C2    	LDA #$C2       ; Source HB
C3/EA4D:	4CF5EA  	JMP $EAF5      ; Init sprites

Initialize credits for remake planner
C3/EA50:	A01800  	LDY #$0018     ; Sprites: 6
C3/EA53:	A2809A  	LDX #$9A80     ; Source LBs
C3/EA56:	A9C2    	LDA #$C2       ; Source HB
C3/EA58:	4CF5EA  	JMP $EAF5      ; Init sprites

Initialize credits for system engineer, page 1
C3/EA5B:	A01800  	LDY #$0018     ; Sprites: 6
C3/EA5E:	A2989A  	LDX #$9A98     ; Source LBs
C3/EA61:	A9C2    	LDA #$C2       ; Source HB
C3/EA63:	4CF5EA  	JMP $EAF5      ; Init sprites

Initialize credits for system engineer, page 2
C3/EA66:	A01800  	LDY #$0018     ; Sprites: 6
C3/EA69:	A2B09A  	LDX #$9AB0     ; Source LBs
C3/EA6C:	A9C2    	LDA #$C2       ; Source HB
C3/EA6E:	4CF5EA  	JMP $EAF5      ; Init sprites

Initialize credits for executive producer
C3/EA71:	A01800  	LDY #$0018     ; Sprites: 6
C3/EA74:	A2C89A  	LDX #$9AC8     ; Source LBs
C3/EA77:	A9C2    	LDA #$C2       ; Source HB
C3/EA79:	4CF5EA  	JMP $EAF5      ; Init sprites

Initialize credits for test coordinator
C3/EA7C:	A02800  	LDY #$0028     ; Sprites: 10
C3/EA7F:	A2E09A  	LDX #$9AE0     ; Source LBs
C3/EA82:	A9C2    	LDA #$C2       ; Source HB
C3/EA84:	4CF5EA  	JMP $EAF5      ; Init sprites

Initialize credits for special thanks, page 1
C3/EA87:	A02800  	LDY #$0028     ; Sprites: 10
C3/EA8A:	A2089B  	LDX #$9B08     ; Source LBs
C3/EA8D:	A9C2    	LDA #$C2       ; Source HB
C3/EA8F:	4CF5EA  	JMP $EAF5      ; Init sprites

Initialize credits for special thanks, page 2
C3/EA92:	A02400  	LDY #$0024     ; Sprites: 9
C3/EA95:	A2309B  	LDX #$9B30     ; Source LBs
C3/EA98:	A9C2    	LDA #$C2       ; Source HB
C3/EA9A:	4CF5EA  	JMP $EAF5      ; Init sprites

Initialize credits for special thanks, page 3
C3/EA9D:	A02000  	LDY #$0020     ; Sprites: 8
C3/EAA0:	A2549B  	LDX #$9B54     ; Source LBs
C3/EAA3:	A9C2    	LDA #$C2       ; Source HB
C3/EAA5:	4CF5EA  	JMP $EAF5      ; Init sprites

Initialize credits for special thanks, page 4
C3/EAA8:	A01800  	LDY #$0018     ; Sprites: 6
C3/EAAB:	A2749B  	LDX #$9B74     ; Source LBs
C3/EAAE:	A9C2    	LDA #$C2       ; Source HB
C3/EAB0:	4CF5EA  	JMP $EAF5      ; Init sprites

Initialize credits for special thanks, page 5
C3/EAB3:	A01400  	LDY #$0014     ; Sprites: 5
C3/EAB6:	A28C9B  	LDX #$9B8C     ; Source LBs
C3/EAB9:	A9C2    	LDA #$C2       ; Source HB
C3/EABB:	4CF5EA  	JMP $EAF5      ; Init sprites

Initialize credits for special thanks, page 6
C3/EABE:	A02800  	LDY #$0028     ; Sprites: 10
C3/EAC1:	A2A09B  	LDX #$9BA0     ; Source LBs
C3/EAC4:	A9C2    	LDA #$C2       ; Source HB
C3/EAC6:	4CF5EA  	JMP $EAF5      ; Init sprites

Initialize credits for special thanks, page 7
C3/EAC9:	A01800  	LDY #$0018     ; Sprites: 6
C3/EACC:	A2C89B  	LDX #$9BC8     ; Source LBs
C3/EACF:	A9C2    	LDA #$C2       ; Source HB
C3/EAD1:	4CF5EA  	JMP $EAF5      ; Init sprites

Initialize credits for special thanks, page 8
C3/EAD4:	A01800  	LDY #$0018     ; Sprites: 6
C3/EAD7:	A2E09B  	LDX #$9BE0     ; Source LBs
C3/EADA:	A9C2    	LDA #$C2       ; Source HB
C3/EADC:	4CF5EA  	JMP $EAF5      ; Init sprites

Initialize credits for special thanks, page 9
C3/EADF:	A01C00  	LDY #$001C     ; Sprites: 7
C3/EAE2:	A2F89B  	LDX #$9BF8     ; Source LBs
C3/EAE5:	A9C2    	LDA #$C2       ; Source HB
C3/EAE7:	4CF5EA  	JMP $EAF5      ; Init sprites

Initialize credits for special thanks, page 10
C3/EAEA:	A01C00  	LDY #$001C     ; Sprites: 7
C3/EAED:	A2149C  	LDX #$9C14     ; Source LBs
C3/EAF0:	A9C2    	LDA #$C2       ; Source HB
C3/EAF2:	4CF5EA  	JMP $EAF5      ; ...

Initialize sprites for current credits strings
C3/EAF5:	84FA    	STY $FA        ; Set src range
C3/EAF7:	86F7    	STX $F7        ; Set src LBs
C3/EAF9:	85F9    	STA $F9        ; Set src HB
C3/EAFB:	A400    	LDY $00        ; Index: 0
C3/EAFD:	C220    	REP #$20       ; 16-bit A
C3/EAFF:	B7F7    	LDA [$F7],Y    ; Anim table ptr
C3/EB01:	AA      	TAX            ; Save in X
C3/EB02:	C8      	INY            ; Index +1
C3/EB03:	C8      	INY            ; Index +1
C3/EB04:	B7F7    	LDA [$F7],Y    ; Position
C3/EB06:	8560    	STA $60        ; Memorize it
C3/EB08:	E220    	SEP #$20       ; 8-bit A
C3/EB0A:	5A      	PHY            ; Save index
C3/EB0B:	9B      	TXY            ; Anim table ptr
C3/EB0C:	2064EB  	JSR $EB64      ; Init sprite
C3/EB0F:	7A      	PLY            ; Table index
C3/EB10:	C8      	INY            ; Index +1
C3/EB11:	C8      	INY            ; Index +1
C3/EB12:	C4FA    	CPY $FA        ; Past range?
C3/EB14:	D0E7    	BNE $EAFD      ; Loop if not
C3/EB16:	38      	SEC            ; ...
C3/EB17:	60      	RTS

Build OAM table for scene's small credits strings
C3/EB18:	A400    	LDY $00        ; Index: 0
C3/EB1A:	2058EB  	JSR $EB58      ; Get attribs
C3/EB1D:	C220    	REP #$20       ; 16-bit A
C3/EB1F:	B74A    	LDA [$4A],Y    ; Text ptr
C3/EB21:	AA      	TAX            ; Put in X
C3/EB22:	C8      	INY            ; Index +1
C3/EB23:	C8      	INY            ; Index +1
C3/EB24:	B74A    	LDA [$4A],Y    ; Dest LBs
C3/EB26:	85E7    	STA $E7        ; Memorize it
C3/EB28:	C8      	INY            ; Index +1
C3/EB29:	C8      	INY            ; Index +1
C3/EB2A:	5A      	PHY            ; Save index
C3/EB2B:	A4E7    	LDY $E7        ; Dest LBs
C3/EB2D:	E220    	SEP #$20       ; 8-bit A
C3/EB2F:	200CEC  	JSR $EC0C      ; Build table
C3/EB32:	7A      	PLY            ; Pointer index
C3/EB33:	C44D    	CPY $4D        ; Past range?
C3/EB35:	D0E3    	BNE $EB1A      ; Loop if not
C3/EB37:	60      	RTS

Build OAM table for scene's large credits strings
C3/EB38:	A400    	LDY $00        ; Index: 0
C3/EB3A:	205EEB  	JSR $EB5E      ; Get attribs
C3/EB3D:	C220    	REP #$20       ; 16-bit A
C3/EB3F:	B74A    	LDA [$4A],Y    ; Source LBs
C3/EB41:	AA      	TAX            ; Save in X
C3/EB42:	C8      	INY            ; Index +1
C3/EB43:	C8      	INY            ; Index +1
C3/EB44:	B74A    	LDA [$4A],Y    ; Dest LBs
C3/EB46:	85E7    	STA $E7        ; Save them
C3/EB48:	C8      	INY            ; Index +1
C3/EB49:	C8      	INY            ; Index +1
C3/EB4A:	5A      	PHY            ; Save index
C3/EB4B:	A4E7    	LDY $E7        ; Dest LBs
C3/EB4D:	E220    	SEP #$20       ; 8-bit A
C3/EB4F:	2021EC  	JSR $EC21      ; Build table
C3/EB52:	7A      	PLY            ; Pointer index
C3/EB53:	C44D    	CPY $4D        ; Past range?
C3/EB55:	D0E3    	BNE $EB3A      ; Loop if not
C3/EB57:	60      	RTS

Set attribute complements for small credits
C3/EB58:	A2000B  	LDX #$0B00     ; ADR+, pal 5
C3/EB5B:	86F1    	STX $F1        ; Save attribs
C3/EB5D:	60      	RTS

Set attribute complements for large credits
C3/EB5E:	A20009  	LDX #$0900     ; ADR+, pal 4
C3/EB61:	86F1    	STX $F1        ; Set attribs
C3/EB63:	60      	RTS

Initialize sprite for current credit string
C3/EB64:	84F1    	STY $F1        ; Save anim ptr
C3/EB66:	64AF    	STZ $AF        ; Request fade-in
C3/EB68:	A900    	LDA #$00       ; Min slot: 0
C3/EB6A:	A094EB  	LDY #$EB94     ; C3/EB94
C3/EB6D:	20DE11  	JSR $11DE      ; Queue anim fn
C3/EB70:	C220    	REP #$20       ; 16-bit A
C3/EB72:	A5F1    	LDA $F1        ; Anim table ptr
C3/EB74:	9FC9327E	STA $7E32C9,X  ; Set sprite's
C3/EB78:	A9A401  	LDA #$01A4     ; Frames: 420
C3/EB7B:	9F49337E	STA $7E3349,X  ; Set hide delay
C3/EB7F:	E220    	SEP #$20       ; 8-bit A
C3/EB81:	A97E    	LDA #$7E       ; Bank: 7E
C3/EB83:	9FCA357E	STA $7E35CA,X  ; Set ptr HB
C3/EB87:	A560    	LDA $60        ; X position
C3/EB89:	9FCA337E	STA $7E33CA,X  ; Set sprite's
C3/EB8D:	A561    	LDA $61        ; Y position
C3/EB8F:	9F4A347E	STA $7E344A,X  ; Set sprite's
C3/EB93:	60      	RTS

Animate credit string
C3/EB94:	AA      	TAX            ; Index mode
C3/EB95:	7C98EB  	JMP ($EB98,X)  ; Handle mode

Jump table for the above
C3/EB98:	9CEB    	; Initialize sprite
C3/EB9A:	D4EB    	; Sustain sprite

Mode 0: Initialize sprite
C3/EB9C:	A62D    	LDX $2D        ; Queue index
C3/EB9E:	FE4936  	INC $3649,X    ; Mode +1
C3/EBA1:	BD4A34  	LDA $344A,X    ; Sprite's Y
C3/EBA4:	18      	CLC            ; Prepare ADC
C3/EBA5:	6920    	ADC #$20       ; Go 32 px down
C3/EBA7:	9D4A34  	STA $344A,X    ; Save changes
C3/EBAA:	C220    	REP #$20       ; 16-bit A
C3/EBAC:	A980FF  	LDA #$FF80     ; V-Spd: -0.5 px
C3/EBAF:	9D4935  	STA $3549,X    ; Set sprite's
C3/EBB2:	9EC934  	STZ $34C9,X    ; H-Speed: 0
C3/EBB5:	E220    	SEP #$20       ; 8-bit A
C3/EBB7:	207112  	JSR $1271      ; Set pose timer
C3/EBBA:	A5AF    	LDA $AF        ; Handled fade-in?
C3/EBBC:	D016    	BNE $EBD4      ; Skip it if so
C3/EBBE:	8B      	PHB            ; Save DB
C3/EBBF:	A900    	LDA #$00       ; Bank: 00
C3/EBC1:	48      	PHA            ; Put on stack
C3/EBC2:	AB      	PLB            ; Set DB to 0
C3/EBC3:	A5B4    	LDA $B4        ; Text on clouds?
C3/EBC5:	D005    	BNE $EBCC      ; Use blue if so
C3/EBC7:	2075D6  	JSR $D675      ; Fade-in: White
C3/EBCA:	8003    	BRA $EBCF      ; Skip a line
C3/EBCC:	209CD6  	JSR $D69C      ; Fade-in: Blue
C3/EBCF:	A901    	LDA #$01       ; Mark as handled
C3/EBD1:	85AF    	STA $AF        ; Allow fade-out
C3/EBD3:	AB      	PLB            ; Restore DB

Mode 1: Sustain sprite
C3/EBD4:	A62D    	LDX $2D        ; Queue index
C3/EBD6:	BC4933  	LDY $3349,X    ; Mode expired?
C3/EBD9:	F01E    	BEQ $EBF9      ; Delete if so
C3/EBDB:	C06401  	CPY #$0164     ; 356?
C3/EBDE:	D006    	BNE $EBE6      ; Scroll if not
C3/EBE0:	9E4935  	STZ $3549,X    ; V-Speed LB: 0
C3/EBE3:	9E4A35  	STZ $354A,X    ; V-Speed HB: 0
C3/EBE6:	C08000  	CPY #$0080     ; 128?
C3/EBE9:	F010    	BEQ $EBFB      ; Fade if so
C3/EBEB:	2010EE  	JSR $EE10      ; Scroll & OAM
C3/EBEE:	A62D    	LDX $2D        ; Queue index
C3/EBF0:	C220    	REP #$20       ; 16-bit A
C3/EBF2:	DE4933  	DEC $3349,X    ; Timer -1
C3/EBF5:	E220    	SEP #$20       ; 8-bit A
C3/EBF7:	38      	SEC            ; Set to requeue
C3/EBF8:	60      	RTS            ; Exit
C3/EBF9:	18      	CLC            ; Set to dequeue
C3/EBFA:	60      	RTS

Fork: Set to fade all text
C3/EBFB:	A5AF    	LDA $AF        ; Already set?
C3/EBFD:	F0EC    	BEQ $EBEB      ; Skip if so
C3/EBFF:	64AF    	STZ $AF        ; Mark as handled
C3/EC01:	8B      	PHB            ; Save DB
C3/EC02:	A900    	LDA #$00       ; Bank: 00
C3/EC04:	48      	PHA            ; Put on stack
C3/EC05:	AB      	PLB            ; Set DB to 0
C3/EC06:	204ED6  	JSR $D64E      ; Trigger fade
C3/EC09:	AB      	PLB            ; Restore DB
C3/EC0A:	80DF    	BRA $EBEB      ; Scroll & OAM

Build OAM table for small credit string
C3/EC0C:	2081EC  	JSR $EC81      ; Set OAM tbl ptr
C3/EC0F:	2075EC  	JSR $EC75      ; Set size, rel X
C3/EC12:	2052EC  	JSR $EC52      ; Set a char's OAM
C3/EC15:	9009    	BCC $EC20      ; Exit if no more
C3/EC17:	A5E0    	LDA $E0        ; Relative X
C3/EC19:	18      	CLC            ; Prepare ADC
C3/EC1A:	6908    	ADC #$08       ; Go 8 px right
C3/EC1C:	85E0    	STA $E0        ; Save changes
C3/EC1E:	80F2    	BRA $EC12      ; Do next letter
C3/EC20:	60      	RTS

Build OAM table for large credit string
C3/EC21:	2081EC  	JSR $EC81      ; Set OAM tbl ptr
C3/EC24:	2075EC  	JSR $EC75      ; Set size, rel X
C3/EC27:	7B      	TDC            ; ...
C3/EC28:	A7E7    	LDA [$E7]      ; At terminator?
C3/EC2A:	F025    	BEQ $EC51      ; Exit if so
C3/EC2C:	85E3    	STA $E3        ; Save letter
C3/EC2E:	A5E0    	LDA $E0        ; Relative X
C3/EC30:	0980    	ORA #$80       ; Add 16x16 flag
C3/EC32:	97EB    	STA [$EB],Y    ; Set for letter
C3/EC34:	C8      	INY            ; Index +1
C3/EC35:	7B      	TDC            ; Relative Y: 0
C3/EC36:	97EB    	STA [$EB],Y    ; Set letter's
C3/EC38:	C8      	INY            ; Index +1
C3/EC39:	7B      	TDC            ; ...
C3/EC3A:	A5E3    	LDA $E3        ; Letter
C3/EC3C:	C221    	REP #$21       ; 16-bit A; C-
C3/EC3E:	65F1    	ADC $F1        ; Add attribs
C3/EC40:	97EB    	STA [$EB],Y    ; Set attribs
C3/EC42:	E6E7    	INC $E7        ; Letter +1
C3/EC44:	C8      	INY            ; Index +1
C3/EC45:	C8      	INY            ; Index +1
C3/EC46:	E220    	SEP #$20       ; 8-bit A
C3/EC48:	A5E0    	LDA $E0        ; Relative X
C3/EC4A:	18      	CLC            ; Prepare ADC
C3/EC4B:	6908    	ADC #$08       ; Go 8 px right
C3/EC4D:	85E0    	STA $E0        ; Save changes
C3/EC4F:	80D6    	BRA $EC27      ; Do next letter
C3/EC51:	60      	RTS

Build OAM for small credit letter, clear Carry if terminator
C3/EC52:	7B      	TDC            ; ...
C3/EC53:	A7E7    	LDA [$E7]      ; At terminator?
C3/EC55:	F01C    	BEQ $EC73      ; Exit if so
C3/EC57:	85E3    	STA $E3        ; Save letter
C3/EC59:	A5E0    	LDA $E0        ; Relative X
C3/EC5B:	97EB    	STA [$EB],Y    ; Set letter's
C3/EC5D:	C8      	INY            ; Index +1
C3/EC5E:	7B      	TDC            ; Relative Y: 0
C3/EC5F:	97EB    	STA [$EB],Y    ; Set letter's
C3/EC61:	C8      	INY            ; Index +1
C3/EC62:	7B      	TDC            ; ...
C3/EC63:	A5E3    	LDA $E3        ; Letter
C3/EC65:	C221    	REP #$21       ; 16-bit A; C-
C3/EC67:	65F1    	ADC $F1        ; Add attribs
C3/EC69:	97EB    	STA [$EB],Y    ; Set attribs
C3/EC6B:	E6E7    	INC $E7        ; Letter +1
C3/EC6D:	C8      	INY            ; Index +1
C3/EC6E:	C8      	INY            ; Index +1
C3/EC6F:	E220    	SEP #$20       ; 8-bit A
C3/EC71:	38      	SEC            ; End: No
C3/EC72:	60      	RTS            ; Exit
C3/EC73:	18      	CLC            ; End: Yes
C3/EC74:	60      	RTS

Set credit string's size and reset relative X position
C3/EC75:	A400    	LDY $00        ; Index: 0
C3/EC77:	97EB    	STA [$EB],Y    ; Set size
C3/EC79:	C8      	INY            ; Index +1
C3/EC7A:	64E0    	STZ $E0        ; Rel X: 0
C3/EC7C:	64EF    	STZ $EF        ; No use...
C3/EC7E:	64F0    	STZ $F0        ; No use...
C3/EC80:	60      	RTS

Set OAM table pointer for credit string, compute string size
C3/EC81:	86E7    	STX $E7        ; Set src LBs
C3/EC83:	A9C2    	LDA #$C2       ; Bank: C2
C3/EC85:	85E9    	STA $E9        ; Set src HB
C3/EC87:	84EB    	STY $EB        ; Set dst LBs
C3/EC89:	A97E    	LDA #$7E       ; Bank: 7E
C3/EC8B:	85ED    	STA $ED        ; Set dst HB
C3/EC8D:	C221    	REP #$21       ; 16-bit A; C-
C3/EC8F:	A5EB    	LDA $EB        ; Dest LBs
C3/EC91:	690300  	ADC #$0003     ; +3 bytes
C3/EC94:	87EB    	STA [$EB]      ; Set OAM ptr
C3/EC96:	E6EB    	INC $EB        ; Dst LBs +1
C3/EC98:	E6EB    	INC $EB        ; Dst LBs +1
C3/EC9A:	E220    	SEP #$20       ; 8-bit A
C3/EC9C:	A9FE    	LDA #$FE       ; Time: Infinite
C3/EC9E:	87EB    	STA [$EB]      ; Set pose timer
C3/ECA0:	E6EB    	INC $EB        ; Dst LBs +1
C3/ECA2:	A400    	LDY $00        ; Letter: 1st
C3/ECA4:	BB      	TYX            ; Tile count: 0
C3/ECA5:	B7E7    	LDA [$E7],Y    ; Letter
C3/ECA7:	C8      	INY            ; Point to next
C3/ECA8:	C900    	CMP #$00       ; Terminator?
C3/ECAA:	F003    	BEQ $ECAF      ; Exit if so
C3/ECAC:	E8      	INX            ; Tile count +1
C3/ECAD:	80F6    	BRA $ECA5      ; Do next letter
C3/ECAF:	8A      	TXA            ; String size
C3/ECB0:	60      	RTS

Decompress data
C3/ECB1:	84F3    	STY $F3        ; Set src LBs
C3/ECB3:	85F5    	STA $F5        ; Set src HB
C3/ECB5:	A000C0  	LDY #$C000     ; 7E/C000
C3/ECB8:	84F6    	STY $F6        ; Set dst LBs
C3/ECBA:	A97E    	LDA #$7E       ; Bank: 7E
C3/ECBC:	85F8    	STA $F8        ; Set dst HB
C3/ECBE:	226DFFC2	JSL $C2FF6D    ; Unpack data
C3/ECC2:	60      	RTS

Clear VRAM
C3/ECC3:	C220    	REP #$20       ; 16-bit A
C3/ECC5:	7B      	TDC            ; $0000
C3/ECC6:	8D1621  	STA $2116      ; Set VRAM ptr
C3/ECC9:	A8      	TAY            ; Counter: 0
C3/ECCA:	8D1821  	STA $2118      ; Zero VRAM word
C3/ECCD:	C8      	INY            ; Counter +1
C3/ECCE:	C00080  	CPY #$8000     ; Done all VRAM?
C3/ECD1:	D0F7    	BNE $ECCA      ; Loop if not
C3/ECD3:	E220    	SEP #$20       ; 8-bit A
C3/ECD5:	60      	RTS

Convert and upload graphics for range of font characters
C3/ECD6:	8C1621  	STY $2116      ; Set VRAM ptr
C3/ECD9:	7B      	TDC            ; Clear A
C3/ECDA:	A8      	TAY            ; Index: 0
C3/ECDB:	C220    	REP #$20       ; 16-bit A
C3/ECDD:	A20800  	LDX #$0008     ; 8-px rows: 8
C3/ECE0:	B7E7    	LDA [$E7],Y    ; 8 px, 2 planes
C3/ECE2:	8D1821  	STA $2118      ; Save in VRAM
C3/ECE5:	C8      	INY            ; Index +1
C3/ECE6:	C8      	INY            ; Index +1
C3/ECE7:	CA      	DEX            ; One less row
C3/ECE8:	D0F6    	BNE $ECE0      ; Loop till last
C3/ECEA:	9C1821  	STZ $2118      ; Planes 1C, 1D
C3/ECED:	9C1821  	STZ $2118      ; Planes 2C, 2D
C3/ECF0:	9C1821  	STZ $2118      ; Planes 3C, 3D
C3/ECF3:	9C1821  	STZ $2118      ; Planes 4C, 4D
C3/ECF6:	9C1821  	STZ $2118      ; Planes 5C, 5D
C3/ECF9:	9C1821  	STZ $2118      ; Planes 6C, 6D
C3/ECFC:	9C1821  	STZ $2118      ; Planes 7C, 7D
C3/ECFF:	9C1821  	STZ $2118      ; Planes 8C, 8D
C3/ED02:	C4EB    	CPY $EB        ; More tiles?
C3/ED04:	D0D7    	BNE $ECDD      ; Loop if so
C3/ED06:	E220    	SEP #$20       ; 8-bit A
C3/ED08:	60      	RTS

Upload data manually, adjust attributes if tilemap
C3/ED09:	C220    	REP #$20       ; 16-bit A
C3/ED0B:	98      	TYA            ; VRAM pointer
C3/ED0C:	8D1621  	STA $2116      ; To register
C3/ED0F:	7B      	TDC            ; Clear A
C3/ED10:	A8      	TAY            ; Index: 0
C3/ED11:	B7E7    	LDA [$E7],Y    ; Source data
C3/ED13:	18      	CLC            ; Prepare ADC
C3/ED14:	65ED    	ADC $ED        ; Add attribs
C3/ED16:	8D1821  	STA $2118      ; Save in VRAM
C3/ED19:	C8      	INY            ; Index +1
C3/ED1A:	C8      	INY            ; Index +1
C3/ED1B:	C4EB    	CPY $EB        ; Past range?
C3/ED1D:	D0F2    	BNE $ED11      ; Loop if not
C3/ED1F:	E220    	SEP #$20       ; 8-bit A
C3/ED21:	60      	RTS

Build Mode 7 matrix tables for HDMA
C3/ED22:	8B      	PHB            ; Save DB
C3/ED23:	A900    	LDA #$00       ; Bank: 00
C3/ED25:	48      	PHA            ; Put on stack
C3/ED26:	AB      	PLB            ; Set DB to 0
C3/ED27:	C220    	REP #$20       ; 16-bit A

Fork: Define scale dividend
C3/ED29:	A5C3    	LDA $C3        ; Dividend index
C3/ED2B:	20C6ED  	JSR $EDC6      ; Signed dividend
C3/ED2E:	85E0    	STA $E0        ; ...
C3/ED30:	85EB    	STA $EB        ; Memorize it
C3/ED32:	A5E0    	LDA $E0        ; Positive?
C3/ED34:	1004    	BPL $ED3A      ; Branch if so
C3/ED36:	49FFFF  	EOR #$FFFF     ; Invert value
C3/ED39:	1A      	INC A          ; Add 1
C3/ED3A:	85E0    	STA $E0        ; ...
C3/ED3C:	4A      	LSR A          ; Halve it
C3/ED3D:	85CB    	STA $CB        ; Save dividend

Fork: Define shear dividend
C3/ED3F:	A5C3    	LDA $C3        ; Dividend index
C3/ED41:	20CAED  	JSR $EDCA      ; Signed dividend
C3/ED44:	85E0    	STA $E0        ; ...
C3/ED46:	85ED    	STA $ED        ; Memorize it
C3/ED48:	A5E0    	LDA $E0        ; Positive?
C3/ED4A:	1004    	BPL $ED50      ; Branch if so
C3/ED4C:	49FFFF  	EOR #$FFFF     ; Invert value
C3/ED4F:	1A      	INC A          ; Add 1
C3/ED50:	85E0    	STA $E0        ; ...
C3/ED52:	4A      	LSR A          ; Halve it
C3/ED53:	85C9    	STA $C9        ; Save dividend

Fork: Define matrices A and D for two scanlines
C3/ED55:	A0C001  	LDY #$01C0     ; Scanline: Last
C3/ED58:	A5C5    	LDA $C5        ; Base divisor
C3/ED5A:	85E7    	STA $E7        ; Memorize it
C3/ED5C:	A5CB    	LDA $CB        ; Scale dividend
C3/ED5E:	8D0442  	STA $4204      ; To register
C3/ED61:	E220    	SEP #$20       ; 8-bit A
C3/ED63:	A5E8    	LDA $E8        ; Map factor HB
C3/ED65:	8D0642  	STA $4206      ; Set divisor
C3/ED68:	EA      	NOP
C3/ED69:	EA      	NOP
C3/ED6A:	EA      	NOP
C3/ED6B:	EA      	NOP
C3/ED6C:	EA      	NOP
C3/ED6D:	C220    	REP #$20       ; 16-bit A
C3/ED6F:	A5EB    	LDA $EB        ; Positive mod?
C3/ED71:	1009    	BPL $ED7C      ; Branch if so
C3/ED73:	AD1442  	LDA $4214      ; Quotient
C3/ED76:	49FFFF  	EOR #$FFFF     ; Invert value
C3/ED79:	1A      	INC A          ; Add 1
C3/ED7A:	8003    	BRA $ED7F      ; Skip a line
C3/ED7C:	AD1442  	LDA $4214      ; Quotient
C3/ED7F:	990206  	STA $0602,Y    ; Set line 1
C3/ED82:	990406  	STA $0604,Y    ; Set line 2

Fork: Define matrices B and C for two scanlines
C3/ED85:	A5C9    	LDA $C9        ; Shear dividend
C3/ED87:	8D0442  	STA $4204      ; To register
C3/ED8A:	E220    	SEP #$20       ; 8-bit A
C3/ED8C:	A5E8    	LDA $E8        ; Map factor HB
C3/ED8E:	8D0642  	STA $4206      ; Set divisor
C3/ED91:	EA      	NOP
C3/ED92:	EA      	NOP
C3/ED93:	C220    	REP #$20       ; 16-bit A
C3/ED95:	A5E7    	LDA $E7        ; Matrix divisor
C3/ED97:	38      	SEC            ; Prepare SBC
C3/ED98:	E5C7    	SBC $C7        ; Deduct "angle"
C3/ED9A:	85E7    	STA $E7        ; Save changes
C3/ED9C:	A5ED    	LDA $ED        ; Positive mod?
C3/ED9E:	1009    	BPL $EDA9      ; Branch if so
C3/EDA0:	AD1442  	LDA $4214      ; Quotient
C3/EDA3:	49FFFF  	EOR #$FFFF     ; Invert it
C3/EDA6:	1A      	INC A          ; Add 1
C3/EDA7:	8003    	BRA $EDAC      ; Skip a line
C3/EDA9:	AD1442  	LDA $4214      ; Quotient
C3/EDAC:	99C407  	STA $07C4,Y    ; Set line B1
C3/EDAF:	99C607  	STA $07C6,Y    ; Set line B2
C3/EDB2:	49FFFF  	EOR #$FFFF     ; Invert it
C3/EDB5:	1A      	INC A          ; Add 1
C3/EDB6:	998609  	STA $0986,Y    ; Set line C1
C3/EDB9:	998809  	STA $0988,Y    ; Set line C2
C3/EDBC:	88      	DEY            ; Index -1
C3/EDBD:	88      	DEY            ; Index -1
C3/EDBE:	88      	DEY            ; Index -1
C3/EDBF:	88      	DEY            ; Index -1
C3/EDC0:	109A    	BPL $ED5C      ; Loop if > 0
C3/EDC2:	E220    	SEP #$20       ; 8-bit A
C3/EDC4:	AB      	PLB            ; Restore DB
C3/EDC5:	60      	RTS

Load animation modifier
C3/EDC6:	18      	CLC            ; Prepare ADC
C3/EDC7:	694000  	ADC #$0040     ; Index +64
C3/EDCA:	29FF00  	AND #$00FF     ; Clear HB
C3/EDCD:	0A      	ASL A          ; Double it
C3/EDCE:	AA      	TAX            ; Index it
C3/EDCF:	BF6DFCC2	LDA $C2FC6D,X  ; Modifier
C3/EDD3:	60      	RTS

Animate linearly moving temporary sprite
C3/EDD4:	AA      	TAX            ; Index mode
C3/EDD5:	7CD8ED  	JMP ($EDD8,X)  ; Handle mode

Jump table for the above
C3/EDD8:	DCED    	; Initialize timer
C3/EDDA:	E4ED    	; Sustain sprite

Mode 0: Initialize timer
C3/EDDC:	A62D    	LDX $2D        ; Queue index
C3/EDDE:	FE4936  	INC $3649,X    ; Mode +1
C3/EDE1:	207112  	JSR $1271      ; Set pose timer

Mode 1: Sustain sprite
C3/EDE4:	A62D    	LDX $2D        ; Queue index
C3/EDE6:	BC4933  	LDY $3349,X    ; Timer expired?
C3/EDE9:	F00E    	BEQ $EDF9      ; Delete if so
C3/EDEB:	2010EE  	JSR $EE10      ; Scroll & OAM
C3/EDEE:	A62D    	LDX $2D        ; Queue index
C3/EDF0:	C220    	REP #$20       ; 16-bit A
C3/EDF2:	DE4933  	DEC $3349,X    ; Timer -1
C3/EDF5:	E220    	SEP #$20       ; 8-bit A
C3/EDF7:	38      	SEC            ; Set to requeue
C3/EDF8:	60      	RTS            ; Exit
C3/EDF9:	18      	CLC            ; Set to dequeue
C3/EDFA:	60      	RTS

Animate regular permanent sprite
C3/EDFB:	AA      	TAX            ; Index mode
C3/EDFC:	7CFFED  	JMP ($EDFF,X)  ; Handle mode

Jump table for the above
C3/EDFF:	03EE    	; Initialize timer
C3/EE01:	0BEE    	; Sustain sprite

Mode 0: Initialize timer
C3/EE03:	A62D    	LDX $2D        ; Queue index
C3/EE05:	FE4936  	INC $3649,X    ; Mode +1
C3/EE08:	207112  	JSR $1271      ; Set pose timer

Mode 1: Sustain sprite
C3/EE0B:	2010EE  	JSR $EE10      ; Scroll & OAM
C3/EE0E:	38      	SEC            ; Set to requeue
C3/EE0F:	60      	RTS

Scroll sprite and define OAM
C3/EE10:	A62D    	LDX $2D        ; Queue index
C3/EE12:	C221    	REP #$21       ; 16-bit A; C-
C3/EE14:	BDC933  	LDA $33C9,X    ; Fractional X
C3/EE17:	7DC934  	ADC $34C9,X    ; Add H-Speed
C3/EE1A:	9DC933  	STA $33C9,X    ; Save changes
C3/EE1D:	BD4934  	LDA $3449,X    ; Fractional Y
C3/EE20:	18      	CLC            ; Prepare ADC
C3/EE21:	7D4935  	ADC $3549,X    ; Add V-Speed
C3/EE24:	9D4934  	STA $3449,X    ; Save changes
C3/EE27:	E220    	SEP #$20       ; ...
C3/EE29:	208C12  	JSR $128C      ; Define OAM
C3/EE2C:	60      	RTS

Animate true actor name or "And you"
C3/EE2D:	85E0    	STA $E0        ; Save mode
C3/EE2F:	A547    	LDA $47        ; At 2nd actor?
C3/EE31:	D006    	BNE $EE39      ; Delete if so
C3/EE33:	A5E0    	LDA $E0        ; Anim mode
C3/EE35:	AA      	TAX            ; Index it
C3/EE36:	7C3BEE  	JMP ($EE3B,X)  ; Handle mode
C3/EE39:	18      	CLC            ; Set to dequeue
C3/EE3A:	60      	RTS

Jump table for the above
C3/EE3B:	4FEE    	; Initialize sprite
C3/EE3D:	63EE    	; Refresh sprite
C3/EE3F:	6BEE    	; Set to scroll up
C3/EE41:	63EE    	; Refresh sprite
C3/EE43:	73EE    	; Stop scrolling
C3/EE45:	63EE    	; Refresh sprite
C3/EE47:	7AEE    	; Set to scroll up
C3/EE49:	63EE    	; Refresh sprite
C3/EE4B:	4DEE    	; Delete sprite

Mode 8: Delete sprite
C3/EE4D:	18      	CLC            ; Set to dequeue
C3/EE4E:	60      	RTS

Mode 0: Initialize sprite
C3/EE4F:	A62D    	LDX $2D        ; Queue index
C3/EE51:	FE4936  	INC $3649,X    ; Mode +1
C3/EE54:	C220    	REP #$20       ; 16-bit A
C3/EE56:	9E4935  	STZ $3549,X    ; V-Speed: 0
C3/EE59:	A585    	LDA $85        ; Scroll delay
C3/EE5B:	9D4933  	STA $3349,X    ; Set mode timer
C3/EE5E:	E220    	SEP #$20       ; 8-bit A
C3/EE60:	207112  	JSR $1271      ; Set pose timer

Modes 1, 3, 5: Refresh sprite
C3/EE63:	209BEE  	JSR $EE9B      ; Mode timer -1
C3/EE66:	2010EE  	JSR $EE10      ; Scroll & OAM
C3/EE69:	38      	SEC            ; Set to requeue
C3/EE6A:	60      	RTS

Mode 2: Set to scroll upward 2.5s
C3/EE6B:	A0C0FF  	LDY #$FFC0     ; V-Spd: -0.25 px
C3/EE6E:	A29600  	LDX #$0096     ; Frames: 150
C3/EE71:	800F    	BRA $EE82      ; Set spd, timer

Mode 4: Stop scrolling
C3/EE73:	A400    	LDY $00        ; V-Speed: 0
C3/EE75:	A2F000  	LDX #$00F0     ; Frames: 240
C3/EE78:	8008    	BRA $EE82      ; Set spd, timer

Mode 6: Set to scroll upward 5s
C3/EE7A:	A0C0FF  	LDY #$FFC0     ; V-Spd: -0.25 px
C3/EE7D:	A22C01  	LDX #$012C     ; Frames: 300
C3/EE80:	8000    	BRA $EE82      ; ...

Fork: Change V-Speed and mode timer
C3/EE82:	84E7    	STY $E7        ; Save V-Speed
C3/EE84:	86E9    	STX $E9        ; Save timer
C3/EE86:	A62D    	LDX $2D        ; Queue index
C3/EE88:	C220    	REP #$20       ; 16-bit A
C3/EE8A:	A5E7    	LDA $E7        ; V-Speed
C3/EE8C:	9D4935  	STA $3549,X    ; Set sprite's
C3/EE8F:	A5E9    	LDA $E9        ; Mode timer
C3/EE91:	9D4933  	STA $3349,X    ; Set sprite's
C3/EE94:	E220    	SEP #$20       ; 8-bit A
C3/EE96:	FE4936  	INC $3649,X    ; Mode +1
C3/EE99:	80C8    	BRA $EE63      ; Scroll & OAM

Decrease animation timer, advance mode if expired
C3/EE9B:	A62D    	LDX $2D        ; Queue index
C3/EE9D:	C220    	REP #$20       ; 16-bit A
C3/EE9F:	BD4933  	LDA $3349,X    ; Timer expired?
C3/EEA2:	D005    	BNE $EEA9      ; Branch if not
C3/EEA4:	FE4936  	INC $3649,X    ; Mode +1
C3/EEA7:	8003    	BRA $EEAC      ; Skip a line
C3/EEA9:	DE4933  	DEC $3349,X    ; Timer -1
C3/EEAC:	E220    	SEP #$20       ; 8-bit A
C3/EEAE:	60      	RTS

Draw, center, and set to upload actor's pseudonym
C3/EEAF:	A400    	LDY $00        ; 1st: Terra
C3/EEB1:	84EB    	STY $EB        ; Save slot
C3/EEB3:	C220    	REP #$20       ; 16-bit A
C3/EEB5:	98      	TYA            ; Actor slot
C3/EEB6:	0A      	ASL A          ; Double it
C3/EEB7:	AA      	TAX            ; Index it
C3/EEB8:	BFDB70C3	LDA $C370DB,X  ; Actor's address
C3/EEBC:	A8      	TAY            ; Index it
C3/EEBD:	E220    	SEP #$20       ; 8-bit A
C3/EEBF:	B90000  	LDA $0000,Y    ; Actor in slot
C3/EEC2:	C528    	CMP $28        ; Matches ours?
C3/EEC4:	F023    	BEQ $EEE9      ; Proceed if so
C3/EEC6:	C221    	REP #$21       ; ...
C3/EEC8:	A92500  	LDA #$0025     ; ...
C3/EECB:	65E7    	ADC $E7        ; ...
C3/EECD:	85E7    	STA $E7        ; ...
C3/EECF:	E220    	SEP #$20       ; ...
C3/EED1:	A4EB    	LDY $EB        ; Actor slot
C3/EED3:	C8      	INY            ; Actor slot +1
C3/EED4:	C01000  	CPY #$0010     ; Done all 16?
C3/EED7:	D0D8    	BNE $EEB1      ; Loop if not

Fork: Default to "??????" (Gogo, Umaro)
C3/EED9:	A600    	LDX $00        ; Dst index: 0
C3/EEDB:	A9CB    	LDA #$CB       ; Char: "?"
C3/EEDD:	9F899E7E	STA $7E9E89,X  ; Add to string
C3/EEE1:	E8      	INX            ; Index +1
C3/EEE2:	E00600  	CPX #$0006     ; Done 6 chars?
C3/EEE5:	D0F6    	BNE $EEDD      ; Loop if not
C3/EEE7:	8010    	BRA $EEF9      ; Skip alt case

Fork: Load actor's name
C3/EEE9:	A600    	LDX $00        ; Dst index: 0
C3/EEEB:	B90200  	LDA $0002,Y    ; Letter
C3/EEEE:	9F899E7E	STA $7E9E89,X  ; Add to string
C3/EEF2:	C8      	INY            ; Src index +1
C3/EEF3:	E8      	INX            ; Dst index +1
C3/EEF4:	E00600  	CPX #$0006     ; Done 6 chars?
C3/EEF7:	D0F2    	BNE $EEEB      ; Loop if not
C3/EEF9:	2003EF  	JSR $EF03      ; Center name
C3/EEFC:	206EAF  	JSR $AF6E      ; Build tilemap
C3/EEFF:	2098AF  	JSR $AF98      ; Load graphics
C3/EF02:	60      	RTS

Center BG3 camera on actor's pseudonym
C3/EF03:	A600    	LDX $00        ; Letter: 1st
C3/EF05:	9B      	TXY            ; Space count: 0
C3/EF06:	BF899E7E	LDA $7E9E89,X  ; Letter
C3/EF0A:	9F939E7E	STA $7E9E93,X  ; No use...
C3/EF0E:	C9FF    	CMP #$FF       ; Space char?
C3/EF10:	D001    	BNE $EF13      ; Skip if not
C3/EF12:	C8      	INY            ; Space count +1
C3/EF13:	E8      	INX            ; Char index +1
C3/EF14:	E00600  	CPX #$0006     ; Done all 6?
C3/EF17:	D0ED    	BNE $EF06      ; Loop if not
C3/EF19:	C220    	REP #$20       ; 16-bit A
C3/EF1B:	98      	TYA            ; Space count
C3/EF1C:	0A      	ASL A          ; x2
C3/EF1D:	0A      	ASL A          ; x4 pixels
C3/EF1E:	49FFFF  	EOR #$FFFF     ; Invert value
C3/EF21:	1A      	INC A          ; Add one
C3/EF22:	853D    	STA $3D        ; Set BG3 X-Pos
C3/EF24:	E220    	SEP #$20       ; 8-bit A
C3/EF26:	60      	RTS

Set to temporarily scroll BG1 westward
C3/EF27:	84F3    	STY $F3        ; Save timer
C3/EF29:	A900    	LDA #$00       ; Min slot: 0
C3/EF2B:	A03CEF  	LDY #$EF3C     ; C3/EF3C
C3/EF2E:	20DE11  	JSR $11DE      ; Queue anim fn
C3/EF31:	C220    	REP #$20       ; 16-bit A
C3/EF33:	A5F3    	LDA $F3        ; Scroll timer
C3/EF35:	9F49337E	STA $7E3349,X  ; Set mode timer
C3/EF39:	E220    	SEP #$20       ; 8-bit A
C3/EF3B:	60      	RTS

Temporarily scroll BG1 westward
C3/EF3C:	A62D    	LDX $2D        ; Queue index
C3/EF3E:	C220    	REP #$20       ; 16-bit A
C3/EF40:	BD4933  	LDA $3349,X    ; Timer expired?
C3/EF43:	F013    	BEQ $EF58      ; Dequeue if so
C3/EF45:	DE4933  	DEC $3349,X    ; Timer -1
C3/EF48:	E220    	SEP #$20       ; 8-bit A
C3/EF4A:	A523    	LDA $23        ; NMI count
C3/EF4C:	2903    	AND #$03       ; Now 0-3
C3/EF4E:	D006    	BNE $EF56      ; Pause if > 0
C3/EF50:	C220    	REP #$20       ; 16-bit A
C3/EF52:	E635    	INC $35        ; BG1 X-Pos +1
C3/EF54:	E220    	SEP #$20       ; 8-bit A
C3/EF56:	38      	SEC            ; Set to requeue
C3/EF57:	60      	RTS            ; Exit
C3/EF58:	E220    	SEP #$20       ; 8-bit A
C3/EF5A:	18      	CLC            ; Set to dequeue
C3/EF5B:	60      	RTS

Create actor's first and last names
C3/EF5C:	7B      	TDC            ; Clear A
C3/EF5D:	A528    	LDA $28        ; Actor
C3/EF5F:	0A      	ASL A          ; x2
C3/EF60:	0A      	ASL A          ; x4
C3/EF61:	85E0    	STA $E0        ; Memorize it
C3/EF63:	A528    	LDA $28        ; Actor
C3/EF65:	0A      	ASL A          ; Double it
C3/EF66:	18      	CLC            ; Prepare ADC
C3/EF67:	65E0    	ADC $E0        ; Now x6
C3/EF69:	AA      	TAX            ; Index it
C3/EF6A:	C220    	REP #$20       ; 16-bit A
C3/EF6C:	BFD48DC2	LDA $C28DD4,X  ; Anim ptr A
C3/EF70:	854D    	STA $4D        ; Memorize it
C3/EF72:	E220    	SEP #$20       ; 8-bit A
C3/EF74:	BFD68DC2	LDA $C28DD6,X  ; Name A's X
C3/EF78:	8553    	STA $53        ; Memorize it
C3/EF7A:	C220    	REP #$20       ; 16-bit A
C3/EF7C:	BFD78DC2	LDA $C28DD7,X  ; Anim ptr B
C3/EF80:	854F    	STA $4F        ; Memorize it
C3/EF82:	E220    	SEP #$20       ; 8-bit A
C3/EF84:	BFD98DC2	LDA $C28DD9,X  ; Name B's X
C3/EF88:	8554    	STA $54        ; Memorize it
C3/EF8A:	20C9EF  	JSR $EFC9      ; Queue A's anim
C3/EF8D:	C220    	REP #$20       ; 16-bit A
C3/EF8F:	A54D    	LDA $4D        ; Anim table ptr
C3/EF91:	9FC9327E	STA $7E32C9,X  ; Set name A's
C3/EF95:	E220    	SEP #$20       ; 8-bit A
C3/EF97:	A9C2    	LDA #$C2       ; Bank: C2
C3/EF99:	9FCA357E	STA $7E35CA,X  ; Set ptr HB
C3/EF9D:	A553    	LDA $53        ; X position
C3/EF9F:	9FCA337E	STA $7E33CA,X  ; Set name A's
C3/EFA3:	A9D0    	LDA #$D0       ; Y: 208
C3/EFA5:	9F4A347E	STA $7E344A,X  ; Set name A's
C3/EFA9:	20C9EF  	JSR $EFC9      ; Queue B's anim
C3/EFAC:	C220    	REP #$20       ; 16-bit A
C3/EFAE:	A54F    	LDA $4F        ; Anim table ptr
C3/EFB0:	9FC9327E	STA $7E32C9,X  ; Set name B's
C3/EFB4:	E220    	SEP #$20       ; 8-bit A
C3/EFB6:	A9C2    	LDA #$C2       ; Bank: C2
C3/EFB8:	9FCA357E	STA $7E35CA,X  ; Set ptr HB
C3/EFBC:	A554    	LDA $54        ; X position
C3/EFBE:	9FCA337E	STA $7E33CA,X  ; Set name B's
C3/EFC2:	A9D0    	LDA #$D0       ; Y: 208
C3/EFC4:	9F4A347E	STA $7E344A,X  ; Set name B's
C3/EFC8:	60      	RTS

Queue true actor name or "And you"
C3/EFC9:	A901    	LDA #$01       ; Min slot: 8
C3/EFCB:	A02DEE  	LDY #$EE2D     ; C3/EE2D
C3/EFCE:	20DE11  	JSR $11DE      ; Queue anim fn
C3/EFD1:	60      	RTS

Create "And you"
C3/EFD2:	20C9EF  	JSR $EFC9      ; Queue anim fn
C3/EFD5:	C220    	REP #$20       ; 16-bit A
C3/EFD7:	A95BF8  	LDA #$F85B     ; Anim table ptr
C3/EFDA:	9FC9327E	STA $7E32C9,X  ; Set sprite's
C3/EFDE:	E220    	SEP #$20       ; 8-bit A
C3/EFE0:	A9CF    	LDA #$CF       ; Bank: CF
C3/EFE2:	9FCA357E	STA $7E35CA,X  ; Set ptr HB
C3/EFE6:	A968    	LDA #$68       ; X: 104
C3/EFE8:	9FCA337E	STA $7E33CA,X  ; Set sprite's
C3/EFEC:	A9D0    	LDA #$D0       ; Y: 208
C3/EFEE:	9F4A347E	STA $7E344A,X  ; Set sprite's
C3/EFF2:	60      	RTS

Initialize font, BG, and register data for actor scene
C3/EFF3:	8528    	STA $28        ; Set actor slot
C3/EFF5:	228CCED4	JSL $D4CE8C    ; Init registers
C3/EFF9:	20D071  	JSR $71D0      ; Clear BG3 A
C3/EFFC:	20BC71  	JSR $71BC      ; Clear BG2 A
C3/EFFF:	A9C3    	LDA #$C3       ; Src HB
C3/F001:	A04930  	LDY #$3049     ; To BG pal 0
C3/F004:	A25F11  	LDX #$115F     ; Src LBs
C3/F007:	20F90F  	JSR $0FF9      ; BGP0: Black
C3/F00A:	A9C3    	LDA #$C3       ; Src HB
C3/F00C:	A06930  	LDY #$3069     ; To BG pal 1
C3/F00F:	A25F11  	LDX #$115F     ; C3/115F
C3/F012:	20F90F  	JSR $0FF9      ; BGP1: Black
C3/F015:	A9C3    	LDA #$C3       ; Src HB
C3/F017:	A08930  	LDY #$3089     ; To BG pal 2
C3/F01A:	A25F11  	LDX #$115F     ; Src LBs
C3/F01D:	20F90F  	JSR $0FF9      ; BGP2: Black
C3/F020:	A9C3    	LDA #$C3       ; Src HB
C3/F022:	A0E930  	LDY #$30E9     ; To BG pal 5
C3/F025:	A25F11  	LDX #$115F     ; Src LBs
C3/F028:	20F90F  	JSR $0FF9      ; BGP5: Black
C3/F02B:	A9C3    	LDA #$C3       ; Src HB
C3/F02D:	A00931  	LDY #$3109     ; To BG pal 6
C3/F030:	A25F11  	LDX #$115F     ; Src LBs
C3/F033:	20F90F  	JSR $0FF9      ; BGP6: Black
C3/F036:	A9C3    	LDA #$C3       ; Src HB
C3/F038:	A04931  	LDY #$3149     ; To OBJ pal 0
C3/F03B:	A25F11  	LDX #$115F     ; Src LBs
C3/F03E:	20F90F  	JSR $0FF9      ; OBP0: Black
C3/F041:	A9C3    	LDA #$C3       ; Src HB
C3/F043:	A06931  	LDY #$3169     ; To OBJ pal 1
C3/F046:	A25F11  	LDX #$115F     ; Src LBs
C3/F049:	20F90F  	JSR $0FF9      ; OBP1: Black
C3/F04C:	A9C3    	LDA #$C3       ; Src HB
C3/F04E:	A0C931  	LDY #$31C9     ; To OBJ pal 4
C3/F051:	A25F11  	LDX #$115F     ; Src LBs
C3/F054:	20F90F  	JSR $0FF9      ; OBP4: Black
C3/F057:	20AEFD  	JSR $FDAE      ; Load big font
C3/F05A:	4CCAFD  	JMP $FDCA      ; And BG GFX/map

Create and upload text for actor scene, unblank screen
C3/F05D:	6447    	STZ $47        ; Erase name: N
C3/F05F:	20D1F7  	JSR $F7D1      ; Create "as"
C3/F062:	A92C    	LDA #$2C       ; Palette 3
C3/F064:	8529    	STA $29        ; No use...
C3/F066:	20AFEE  	JSR $EEAF      ; Create alias
C3/F069:	A901    	LDA #$01       ; CGRAM: Freeze
C3/F06B:	1445    	TRB $45        ; Set NMI flag
C3/F06D:	201715  	JSR $1517      ; Upload alias
C3/F070:	A901    	LDA #$01       ; CGRAM: Refresh
C3/F072:	0445    	TSB $45        ; Set NMI flag
C3/F074:	205CEF  	JSR $EF5C      ; Create true name
C3/F077:	205BFE  	JSR $FE5B      ; Queue BG1+BG3a
C3/F07A:	E626    	INC $26        ; Scene mode +1
C3/F07C:	4CE7D5  	JMP $D5E7      ; Set brightness

Set to fade BG elements for actor scene (also final airship's)
C3/F07F:	A9C3    	LDA #$C3       ; C3/115F
C3/F081:	85ED    	STA $ED        ; Set src HB
C3/F083:	A904    	LDA #$04       ; Slowness: 4
C3/F085:	A0E930  	LDY #$30E9     ; To BG pal 5
C3/F088:	84E7    	STY $E7        ; ...
C3/F08A:	A25F11  	LDX #$115F     ; Black palette
C3/F08D:	86EB    	STX $EB        ; ...
C3/F08F:	201510  	JSR $1015      ; Do tabletop
C3/F092:	A9C3    	LDA #$C3       ; ...
C3/F094:	85ED    	STA $ED        ; ...
C3/F096:	A904    	LDA #$04       ; Slowness: 4
C3/F098:	A00931  	LDY #$3109     ; To BG pal 6
C3/F09B:	84E7    	STY $E7        ; ...
C3/F09D:	A25F11  	LDX #$115F     ; Black palette
C3/F0A0:	86EB    	STX $EB        ; ...
C3/F0A2:	201510  	JSR $1015      ; Do overlay
C3/F0A5:	A9C3    	LDA #$C3       ; C3/115F
C3/F0A7:	85ED    	STA $ED        ; Set src HB
C3/F0A9:	A904    	LDA #$04       ; Slowness: 4
C3/F0AB:	A06930  	LDY #$3069     ; To BG pal 1
C3/F0AE:	84E7    	STY $E7        ; ...
C3/F0B0:	A25F11  	LDX #$115F     ; Black palette
C3/F0B3:	86EB    	STX $EB        ; ...
C3/F0B5:	201510  	JSR $1015      ; Do book, etc.
C3/F0B8:	A9C3    	LDA #$C3       ; ...
C3/F0BA:	85ED    	STA $ED        ; ...
C3/F0BC:	A904    	LDA #$04       ; Slowness: 4
C3/F0BE:	A08930  	LDY #$3089     ; To BG pal 2
C3/F0C1:	84E7    	STY $E7        ; ...
C3/F0C3:	A25F11  	LDX #$115F     ; Black palette
C3/F0C6:	86EB    	STX $EB        ; ...
C3/F0C8:	201510  	JSR $1015      ; Do bones, etc.
C3/F0CB:	60      	RTS

Set to fade in BG elements for actor scene
C3/F0CC:	A9C2    	LDA #$C2       ; Bank: C2
C3/F0CE:	85ED    	STA $ED        ; Set src HB
C3/F0D0:	A902    	LDA #$02       ; Slowness: 2
C3/F0D2:	A06930  	LDY #$3069     ; To BG pal 1
C3/F0D5:	84E7    	STY $E7        ; ...
C3/F0D7:	A27496  	LDX #$9674     ; C2/9674
C3/F0DA:	86EB    	STX $EB        ; ...
C3/F0DC:	201510  	JSR $1015      ; Do book, etc.
C3/F0DF:	A9C2    	LDA #$C2       ; ...
C3/F0E1:	85ED    	STA $ED        ; ...
C3/F0E3:	A902    	LDA #$02       ; Slowness: 2
C3/F0E5:	A08930  	LDY #$3089     ; To BG pal 2
C3/F0E8:	84E7    	STY $E7        ; ...
C3/F0EA:	A29496  	LDX #$9694     ; C2/9694
C3/F0ED:	86EB    	STX $EB        ; ...
C3/F0EF:	201510  	JSR $1015      ; Do bones, etc.
C3/F0F2:	A9C2    	LDA #$C2       ; ...
C3/F0F4:	85ED    	STA $ED        ; ...
C3/F0F6:	A902    	LDA #$02       ; Slowness: 2
C3/F0F8:	A0E930  	LDY #$30E9     ; To BG pal 5
C3/F0FB:	84E7    	STY $E7        ; ...
C3/F0FD:	A2D496  	LDX #$96D4     ; C2/96D4
C3/F100:	86EB    	STX $EB        ; ...
C3/F102:	201510  	JSR $1015      ; Do tabletop
C3/F105:	A9C2    	LDA #$C2       ; ...
C3/F107:	85ED    	STA $ED        ; ...
C3/F109:	A902    	LDA #$02       ; Slowness: 2
C3/F10B:	A00931  	LDY #$3109     ; To BG pal 6
C3/F10E:	84E7    	STY $E7        ; ...
C3/F110:	A2F496  	LDX #$96F4     ; C2/96F4
C3/F113:	86EB    	STX $EB        ; ...
C3/F115:	201510  	JSR $1015      ; Do overlay
C3/F118:	60      	RTS

Set to fade in actor's pseudonym and "as"
C3/F119:	A9C2    	LDA #$C2       ; Bank: C2
C3/F11B:	85ED    	STA $ED        ; Set src HB
C3/F11D:	A904    	LDA #$04       ; Slowness: 4
C3/F11F:	A04930  	LDY #$3049     ; To BG pal 0
C3/F122:	84E7    	STY $E7        ; ...
C3/F124:	A24C97  	LDX #$974C     ; C2/974C
C3/F127:	86EB    	STX $EB        ; ...
C3/F129:	201510  	JSR $1015      ; Handle name
C3/F12C:	A9C2    	LDA #$C2       ; ...
C3/F12E:	85ED    	STA $ED        ; ...
C3/F130:	A904    	LDA #$04       ; Slowness: 4
C3/F132:	A06931  	LDY #$3169     ; To OBJ pal 1
C3/F135:	84E7    	STY $E7        ; ...
C3/F137:	A24C97  	LDX #$974C     ; C2/974C
C3/F13A:	86EB    	STX $EB        ; ...
C3/F13C:	201510  	JSR $1015      ; Handle "as"
C3/F13F:	60      	RTS

Set to scroll and fade actor alias, fade "as", fade in true name
C3/F140:	64CF    	STZ $CF        ; Scroll timer LB
C3/F142:	64D0    	STZ $D0        ; Scroll timer HB
C3/F144:	A0F000  	LDY #$00F0     ; Frames: 240
C3/F147:	8464    	STY $64        ; Set scroll limit
C3/F149:	A900    	LDA #$00       ; Min slot: 0
C3/F14B:	A03AE1  	LDY #$E13A     ; C3/E13A
C3/F14E:	20DE11  	JSR $11DE      ; Queue scroll fn
C3/F151:	207BF1  	JSR $F17B      ; Fade pseudonym
C3/F154:	A9C3    	LDA #$C3       ; ...
C3/F156:	85ED    	STA $ED        ; ...
C3/F158:	A904    	LDA #$04       ; Slowness: 4
C3/F15A:	A06931  	LDY #$3169     ; To OBJ pal 1
C3/F15D:	84E7    	STY $E7        ; ...
C3/F15F:	A25F11  	LDX #$115F     ; Black palette
C3/F162:	86EB    	STX $EB        ; ...
C3/F164:	201510  	JSR $1015      ; Fade "as"
C3/F167:	A9C2    	LDA #$C2       ; Bank: C2
C3/F169:	85ED    	STA $ED        ; Set src HB
C3/F16B:	A904    	LDA #$04       ; Slowness: 4
C3/F16D:	A04931  	LDY #$3149     ; To OBJ pal 0
C3/F170:	84E7    	STY $E7        ; ...
C3/F172:	A24C97  	LDX #$974C     ; C2/974C
C3/F175:	86EB    	STX $EB        ; ...
C3/F177:	201510  	JSR $1015      ; Fade in true name
C3/F17A:	60      	RTS

Set to fade background palette 0
C3/F17B:	A9C3    	LDA #$C3       ; C3/115F
C3/F17D:	85ED    	STA $ED        ; Set src HB
C3/F17F:	A904    	LDA #$04       ; Slowness: 4
C3/F181:	A04930  	LDY #$3049     ; To BG pal 0
C3/F184:	84E7    	STY $E7        ; ...
C3/F186:	A25F11  	LDX #$115F     ; Black palette
C3/F189:	86EB    	STX $EB        ; ...
C3/F18B:	201510  	JSR $1015      ; Queue fade-out
C3/F18E:	60      	RTS

Set to fade sprite palette 0
C3/F18F:	A9C3    	LDA #$C3       ; C3/115F
C3/F191:	85ED    	STA $ED        ; Set src HB
C3/F193:	A904    	LDA #$04       ; Slowness: 4
C3/F195:	A04931  	LDY #$3149     ; To OBJ pal 0
C3/F198:	84E7    	STY $E7        ; ...
C3/F19A:	A25F11  	LDX #$115F     ; Black palette
C3/F19D:	86EB    	STX $EB        ; ...
C3/F19F:	201510  	JSR $1015      ; Queue fade-out
C3/F1A2:	60      	RTS

Set to return to event script
C3/F1A3:	A9FF    	LDA #$FF       ; Null value
C3/F1A5:	8526    	STA $26        ; Next: Exit
C3/F1A7:	60      	RTS

28: Start Shadow's scene
C3/F1A8:	A903    	LDA #$03       ; Actor: Shadow
C3/F1AA:	20F3EF  	JSR $EFF3      ; Init BGs/font
C3/F1AD:	2082FE  	JSR $FE82      ; Upload apple
C3/F1B0:	20CCF0  	JSR $F0CC      ; Fade in BGs
C3/F1B3:	20C4F1  	JSR $F1C4      ; Fade in apple
C3/F1B6:	2079F7  	JSR $F779      ; Scroll table
C3/F1B9:	A07800  	LDY #$0078     ; Fade-in delay
C3/F1BC:	8420    	STY $20        ; Set for alias
C3/F1BE:	20EDF8  	JSR $F8ED      ; Create apple
C3/F1C1:	4C5DF0  	JMP $F05D      ; Create text

Set to fade in non-glint sprites on table
C3/F1C4:	A9C2    	LDA #$C2       ; Bank: C2
C3/F1C6:	85ED    	STA $ED        ; Set src HB
C3/F1C8:	A902    	LDA #$02       ; Slowness: 2
C3/F1CA:	A0C931  	LDY #$31C9     ; To OBJ pal 4
C3/F1CD:	84E7    	STY $E7        ; ...
C3/F1CF:	A26C97  	LDX #$976C     ; C2/976C
C3/F1D2:	86EB    	STX $EB        ; ...
C3/F1D4:	201510  	JSR $1015      ; Queue fade-in
C3/F1D7:	60      	RTS

Set to fade sprite palette 4
C3/F1D8:	A9C3    	LDA #$C3       ; C3/115F
C3/F1DA:	85ED    	STA $ED        ; Set src HB
C3/F1DC:	A904    	LDA #$04       ; Slowness: 4
C3/F1DE:	A0C931  	LDY #$31C9     ; To OBJ pal 4
C3/F1E1:	84E7    	STY $E7        ; ...
C3/F1E3:	A25F11  	LDX #$115F     ; Black palette
C3/F1E6:	86EB    	STX $EB        ; ...
C3/F1E8:	201510  	JSR $1015      ; Queue fade-out
C3/F1EB:	60      	RTS

29: Fade in "Shadow as"
C3/F1EC:	A420    	LDY $20        ; Delay expired?
C3/F1EE:	D00A    	BNE $F1FA      ; Exit if not
C3/F1F0:	E626    	INC $26        ; Next: C3/F1FB
C3/F1F2:	2019F1  	JSR $F119      ; Queue fade-in
C3/F1F5:	A0F000  	LDY #$00F0     ; Switch delay
C3/F1F8:	8420    	STY $20        ; Set for names
C3/F1FA:	60      	RTS

2A: Switch Shadow's names
C3/F1FB:	A420    	LDY $20        ; Delay expired?
C3/F1FD:	D00A    	BNE $F209      ; Exit if not
C3/F1FF:	E626    	INC $26        ; Next: C3/F20A
C3/F201:	2040F1  	JSR $F140      ; Switch names
C3/F204:	A06801  	LDY #$0168     ; Fade/Pan delay
C3/F207:	8420    	STY $20        ; Set for below
C3/F209:	60      	RTS

2B: Fade all but Shadow's name
C3/F20A:	A420    	LDY $20        ; Delay expired?
C3/F20C:	D012    	BNE $F220      ; Exit if not
C3/F20E:	A938    	LDA #$38       ; C3/F221
C3/F210:	8526    	STA $26        ; Next: Fd name
C3/F212:	A07800  	LDY #$0078     ; Fade delay
C3/F215:	8420    	STY $20        ; Set for name
C3/F217:	207FF0  	JSR $F07F      ; Fade BGs
C3/F21A:	20D8F1  	JSR $F1D8      ; Fade apple
C3/F21D:	207FF7  	JSR $F77F      ; Scroll table
C3/F220:	60      	RTS

38: Fade actor's true name
C3/F221:	A420    	LDY $20        ; Delay expired?
C3/F223:	D00C    	BNE $F231      ; Exit if not
C3/F225:	A07800  	LDY #$0078     ; Frames: 120
C3/F228:	8420    	STY $20        ; Set exit delay
C3/F22A:	A901    	LDA #$01       ; C3/D543
C3/F22C:	8526    	STA $26        ; Next: Exit
C3/F22E:	208FF1  	JSR $F18F      ; Queue fade-out
C3/F231:	60      	RTS

32: Start Cyan's scene
C3/F232:	A902    	LDA #$02       ; Actor: Cyan
C3/F234:	20F3EF  	JSR $EFF3      ; Init BGs/font
C3/F237:	20A2FE  	JSR $FEA2      ; Draw sword; GFX
C3/F23A:	20CCF0  	JSR $F0CC      ; Fade in BGs
C3/F23D:	20A2F3  	JSR $F3A2      ; Fade in glint
C3/F240:	A0B8FF  	LDY #$FFB8     ; X: -72 = 440
C3/F243:	8435    	STY $35        ; Set BG1 X-Pos
C3/F245:	2073F7  	JSR $F773      ; Scroll table
C3/F248:	2070FB  	JSR $FB70      ; Queue glints
C3/F24B:	A07800  	LDY #$0078     ; Fade-in delay
C3/F24E:	8420    	STY $20        ; Set for alias
C3/F250:	4C5DF0  	JMP $F05D      ; Create text

33: Fade in "Cyan as"
C3/F253:	A420    	LDY $20        ; Delay expired?
C3/F255:	D00A    	BNE $F261      ; Exit if not
C3/F257:	E626    	INC $26        ; Next: C3/F262
C3/F259:	2019F1  	JSR $F119      ; Queue fade-in
C3/F25C:	A0F000  	LDY #$00F0     ; Switch delay
C3/F25F:	8420    	STY $20        ; Set for names
C3/F261:	60      	RTS

34: Switch Cyan's names
C3/F262:	A420    	LDY $20        ; Delay expired?
C3/F264:	D00A    	BNE $F270      ; Exit if not
C3/F266:	E626    	INC $26        ; Next: C3/F271
C3/F268:	2040F1  	JSR $F140      ; Switch names
C3/F26B:	A06801  	LDY #$0168     ; Frames: 360
C3/F26E:	8420    	STY $20        ; Set fade delay
C3/F270:	60      	RTS

35: Fade all but Cyan's name
C3/F271:	A420    	LDY $20        ; Delay expired?
C3/F273:	D00F    	BNE $F284      ; Exit if not
C3/F275:	A938    	LDA #$38       ; C3/F221
C3/F277:	8526    	STA $26        ; Next: Fd name
C3/F279:	A07800  	LDY #$0078     ; Fade delay
C3/F27C:	8420    	STY $20        ; Set for name
C3/F27E:	207FF0  	JSR $F07F      ; Fade BGs
C3/F281:	20D8F1  	JSR $F1D8      ; Fade glint
C3/F284:	60      	RTS

40: Start Edgar and Sabin's scene
C3/F285:	A904    	LDA #$04       ; Actor: Edgar
C3/F287:	20F3EF  	JSR $EFF3      ; Init BGs/font
C3/F28A:	20B8FE  	JSR $FEB8      ; Upload coin
C3/F28D:	20CCF0  	JSR $F0CC      ; Fade in BGs
C3/F290:	20C4F1  	JSR $F1C4      ; Fade in coin
C3/F293:	205EFB  	JSR $FB5E      ; Queue coin fn
C3/F296:	A07800  	LDY #$0078     ; Fade-in delay
C3/F299:	8420    	STY $20        ; Set for name
C3/F29B:	4C5DF0  	JMP $F05D      ; Create text

41: Fade in "Edgar as"
C3/F29E:	A420    	LDY $20        ; Delay expired?
C3/F2A0:	D00A    	BNE $F2AC      ; Exit if not
C3/F2A2:	E626    	INC $26        ; Next: C3/F2AD
C3/F2A4:	2019F1  	JSR $F119      ; Queue fade-in
C3/F2A7:	A0F000  	LDY #$00F0     ; Switch delay
C3/F2AA:	8420    	STY $20        ; Set for alias
C3/F2AC:	60      	RTS

42: Switch Edgar's names
C3/F2AD:	A420    	LDY $20        ; Delay expired?
C3/F2AF:	D00A    	BNE $F2BB      ; Exit if not
C3/F2B1:	E626    	INC $26        ; Next: C3/F2BC
C3/F2B3:	2040F1  	JSR $F140      ; Switch names
C3/F2B6:	A0F000  	LDY #$00F0     ; Intro delay
C3/F2B9:	8420    	STY $20        ; Set for Sabin
C3/F2BB:	60      	RTS

43: Show Sabin's name, fade Edgar's
C3/F2BC:	A420    	LDY $20        ; Delay expired?
C3/F2BE:	D01B    	BNE $F2DB      ; Exit if not
C3/F2C0:	A400    	LDY $00        ; ...
C3/F2C2:	843F    	STY $3F        ; BG3 Y-Pos: 0
C3/F2C4:	A905    	LDA #$05       ; Actor: Sabin
C3/F2C6:	8528    	STA $28        ; Set actor slot
C3/F2C8:	20D1F7  	JSR $F7D1      ; Create "as"
C3/F2CB:	208FF1  	JSR $F18F      ; Fade Edgar
C3/F2CE:	20AFEE  	JSR $EEAF      ; Create Sabin
C3/F2D1:	2019F1  	JSR $F119      ; Fade in Sabin
C3/F2D4:	E626    	INC $26        ; Next: C3/F2DC
C3/F2D6:	A07800  	LDY #$0078     ; Removal delay
C3/F2D9:	8420    	STY $20        ; Set for Edgar
C3/F2DB:	60      	RTS

44: Delete Edgar's name
C3/F2DC:	A420    	LDY $20        ; Delay expired?
C3/F2DE:	D00B    	BNE $F2EB      ; Exit if not
C3/F2E0:	A901    	LDA #$01       ; Erase name: Y
C3/F2E2:	8547    	STA $47        ; Set sprite flag
C3/F2E4:	E626    	INC $26        ; Next: C3/F2EC
C3/F2E6:	A0B400  	LDY #$00B4     ; Switch delay
C3/F2E9:	8420    	STY $20        ; Set for Sabin
C3/F2EB:	60      	RTS

45: Switch Sabin's names
C3/F2EC:	A420    	LDY $20        ; Delay expired?
C3/F2EE:	D016    	BNE $F306      ; Exit if not
C3/F2F0:	A94F    	LDA #$4F       ; C3/F307
C3/F2F2:	8526    	STA $26        ; Next: Fade BG
C3/F2F4:	A0B400  	LDY #$00B4     ; Frames: 180
C3/F2F7:	8420    	STY $20        ; Set fade delay
C3/F2F9:	6447    	STZ $47        ; Erase name: N
C3/F2FB:	A01400  	LDY #$0014     ; Frames: 20
C3/F2FE:	8485    	STY $85        ; Set scroll delay
C3/F300:	205CEF  	JSR $EF5C      ; Create true name
C3/F303:	2040F1  	JSR $F140      ; Switch names
C3/F306:	60      	RTS

4F: Fade all but Sabin's name
C3/F307:	A420    	LDY $20        ; Delay expired?
C3/F309:	D00F    	BNE $F31A      ; Exit if not
C3/F30B:	A938    	LDA #$38       ; C3/F221
C3/F30D:	8526    	STA $26        ; Next: Fd name
C3/F30F:	A07800  	LDY #$0078     ; Fade delay
C3/F312:	8420    	STY $20        ; Set for name
C3/F314:	207FF0  	JSR $F07F      ; Fade BGs
C3/F317:	20D8F1  	JSR $F1D8      ; Fade coin
C3/F31A:	60      	RTS

3C: Start Mog's scene
C3/F31B:	A90A    	LDA #$0A       ; Actor: Mog
C3/F31D:	20F3EF  	JSR $EFF3      ; Init BGs/font
C3/F320:	20DCFE  	JSR $FEDC      ; Draw tree; GFX
C3/F323:	20CCF0  	JSR $F0CC      ; Fade in BGs
C3/F326:	20C4F1  	JSR $F1C4      ; Fade in sprites
C3/F329:	2079F7  	JSR $F779      ; Scroll table
C3/F32C:	205EF9  	JSR $F95E      ; Create sprites
C3/F32F:	A07800  	LDY #$0078     ; Fade-in delay
C3/F332:	8420    	STY $20        ; Set for name
C3/F334:	4C5DF0  	JMP $F05D      ; Create text

3D: Fade in "Mog as"
C3/F337:	A420    	LDY $20        ; Delay expired?
C3/F339:	D00A    	BNE $F345      ; Exit if not
C3/F33B:	E626    	INC $26        ; Next: C3/F346
C3/F33D:	2019F1  	JSR $F119      ; Queue fade-in
C3/F340:	A0F000  	LDY #$00F0     ; Switch delay
C3/F343:	8420    	STY $20        ; Set for names
C3/F345:	60      	RTS

3E: Switch Mog's names
C3/F346:	A420    	LDY $20        ; Delay expired?
C3/F348:	D00A    	BNE $F354      ; Exit if not
C3/F34A:	E626    	INC $26        ; Next: C3/F355
C3/F34C:	2040F1  	JSR $F140      ; Switch names
C3/F34F:	A06801  	LDY #$0168     ; Frames: 360
C3/F352:	8420    	STY $20        ; Set fade delay
C3/F354:	60      	RTS

3F: Fade all but Mog's name
C3/F355:	A420    	LDY $20        ; Delay expired?
C3/F357:	D012    	BNE $F36B      ; Exit if not
C3/F359:	A938    	LDA #$38       ; C3/F221
C3/F35B:	8526    	STA $26        ; Next: Fd name
C3/F35D:	A07800  	LDY #$0078     ; Fade delay
C3/F360:	8420    	STY $20        ; Set for name
C3/F362:	207FF0  	JSR $F07F      ; Fade BGs
C3/F365:	20D8F1  	JSR $F1D8      ; Fade sprites
C3/F368:	207FF7  	JSR $F77F      ; Scroll table
C3/F36B:	60      	RTS

46: Start Gogo's scene
C3/F36C:	A90C    	LDA #$0C       ; Actor: Gogo
C3/F36E:	20F3EF  	JSR $EFF3      ; Init BGs/font
C3/F371:	20F2FE  	JSR $FEF2      ; Draw helmet; eye
C3/F374:	20CCF0  	JSR $F0CC      ; Fade in BGs
C3/F377:	2073F7  	JSR $F773      ; Scroll table
C3/F37A:	201EF9  	JSR $F91E      ; Create pink eye
C3/F37D:	A902    	LDA #$02       ; Min slot: 16
C3/F37F:	A0D9F3  	LDY #$F3D9     ; C3/F3D9
C3/F382:	20DE11  	JSR $11DE      ; Queue eye fn
C3/F385:	A9B4    	LDA #$B4       ; Eye delay
C3/F387:	BF49337E	LDA $7E3349,X  ; Bug: LDA -> STA
C3/F38B:	A07800  	LDY #$0078     ; Fade-in delay
C3/F38E:	8420    	STY $20        ; Set for name
C3/F390:	4C5DF0  	JMP $F05D      ; Create text

47: Fade in "Gogo as"
C3/F393:	A420    	LDY $20        ; Delay expired?
C3/F395:	D00A    	BNE $F3A1      ; Exit if not
C3/F397:	E626    	INC $26        ; Next: C3/F3B6
C3/F399:	2019F1  	JSR $F119      ; Queue fade-in
C3/F39C:	A0F000  	LDY #$00F0     ; Switch delay
C3/F39F:	8420    	STY $20        ; Set for nameS
C3/F3A1:	60      	RTS

Set to fade in glint on table object
C3/F3A2:	A9C2    	LDA #$C2       ; Bank: C2
C3/F3A4:	85ED    	STA $ED        ; Set src HB
C3/F3A6:	A901    	LDA #$01       ; Slowness: 1
C3/F3A8:	A0C931  	LDY #$31C9     ; To OBJ pal 4
C3/F3AB:	84E7    	STY $E7        ; ...
C3/F3AD:	A25495  	LDX #$9554     ; C2/9554
C3/F3B0:	86EB    	STX $EB        ; ...
C3/F3B2:	201510  	JSR $1015      ; Queue fade-in
C3/F3B5:	60      	RTS

48: Switch Gogo's names
C3/F3B6:	A420    	LDY $20        ; Delay expired?
C3/F3B8:	D00A    	BNE $F3C4      ; Exit if not
C3/F3BA:	E626    	INC $26        ; Next: C3/F3C5
C3/F3BC:	2040F1  	JSR $F140      ; Switch names
C3/F3BF:	A06801  	LDY #$0168     ; Frames: 360
C3/F3C2:	8420    	STY $20        ; Set fade delay
C3/F3C4:	60      	RTS

49: Fade all but Gogo's name
C3/F3C5:	A420    	LDY $20        ; Delay expired?
C3/F3C7:	D00F    	BNE $F3D8      ; Exit if not
C3/F3C9:	A938    	LDA #$38       ; C3/F221
C3/F3CB:	8526    	STA $26        ; Next: Fd name
C3/F3CD:	A07800  	LDY #$0078     ; Fade delay
C3/F3D0:	8420    	STY $20        ; Set for name
C3/F3D2:	207FF0  	JSR $F07F      ; Fade BGs
C3/F3D5:	20D8F1  	JSR $F1D8      ; Fade eye
C3/F3D8:	60      	RTS

Animate eye in Gogo's helmet
C3/F3D9:	AA      	TAX            ; Index mode
C3/F3DA:	7CDDF3  	JMP ($F3DD,X)  ; Handle mode

Jump table for Gogo's eye
C3/F3DD:	E5F3    	; Wait
C3/F3DF:	F4F3    	; Fade in eye
C3/F3E1:	E5F3    	; Wait
C3/F3E3:	19F4    	; Fade out eye

Modes 0 and 2: Wait
C3/F3E5:	A62D    	LDX $2D        ; Queue index
C3/F3E7:	BD4933  	LDA $3349,X    ; Timer expired?
C3/F3EA:	D003    	BNE $F3EF      ; Branch if not
C3/F3EC:	FE4936  	INC $3649,X    ; Mode +1
C3/F3EF:	DE4933  	DEC $3349,X    ; Timer -1
C3/F3F2:	38      	SEC            ; Set to requeue
C3/F3F3:	60      	RTS

Mode 1: Fade in eye
C3/F3F4:	8B      	PHB            ; Save DB
C3/F3F5:	A900    	LDA #$00       ; ...
C3/F3F7:	48      	PHA            ; ...
C3/F3F8:	AB      	PLB            ; ...
C3/F3F9:	A9C2    	LDA #$C2       ; Bank: C2
C3/F3FB:	85ED    	STA $ED        ; Set src HB
C3/F3FD:	A901    	LDA #$01       ; Slowness: 1
C3/F3FF:	A0C931  	LDY #$31C9     ; To OBJ pal 4
C3/F402:	84E7    	STY $E7        ; ...
C3/F404:	A27495  	LDX #$9574     ; C2/9574
C3/F407:	86EB    	STX $EB        ; ...
C3/F409:	201510  	JSR $1015      ; Queue fade-in
C3/F40C:	AB      	PLB            ; Restore DB
C3/F40D:	A62D    	LDX $2D        ; Queue index
C3/F40F:	A93C    	LDA #$3C       ; Delay: 60
C3/F411:	9D4933  	STA $3349,X    ; Set fade-out's
C3/F414:	FE4936  	INC $3649,X    ; Mode +1
C3/F417:	38      	SEC            ; Set to requeue
C3/F418:	60      	RTS

Mode 3: Fade out eye
C3/F419:	8B      	PHB            ; Save DB
C3/F41A:	A900    	LDA #$00       ; ...
C3/F41C:	48      	PHA            ; ...
C3/F41D:	AB      	PLB            ; ...
C3/F41E:	A9C3    	LDA #$C3       ; C3/115F
C3/F420:	85ED    	STA $ED        ; Set src HB
C3/F422:	A901    	LDA #$01       ; Slowness: 1
C3/F424:	A0C931  	LDY #$31C9     ; To OBJ pal 4
C3/F427:	84E7    	STY $E7        ; ...
C3/F429:	A25F11  	LDX #$115F     ; Black palette
C3/F42C:	86EB    	STX $EB        ; ...
C3/F42E:	201510  	JSR $1015      ; Queue fade
C3/F431:	AB      	PLB            ; Restore DB
C3/F432:	18      	CLC            ; Set to dequeue
C3/F433:	60      	RTS

50: Start Gau's scene
C3/F434:	A90B    	LDA #$0B       ; Actor: Gau
C3/F436:	20F3EF  	JSR $EFF3      ; Init BGs/font
C3/F439:	2008FF  	JSR $FF08      ; Draw helmet; face
C3/F43C:	20CCF0  	JSR $F0CC      ; Fade in BGs
C3/F43F:	20C4F1  	JSR $F1C4      ; Fade in face
C3/F442:	2079F7  	JSR $F779      ; Scroll table
C3/F445:	A07800  	LDY #$0078     ; Fade-in delay
C3/F448:	8420    	STY $20        ; Set for name
C3/F44A:	4C5DF0  	JMP $F05D      ; Create text

51: Fade in "Gau as"
C3/F44D:	A420    	LDY $20        ; Delay expired?
C3/F44F:	D00A    	BNE $F45B      ; Exit if not
C3/F451:	E626    	INC $26        ; Next: C3/F45C
C3/F453:	2019F1  	JSR $F119      ; Queue fade-in
C3/F456:	A0F000  	LDY #$00F0     ; Switch delay
C3/F459:	8420    	STY $20        ; Set for names
C3/F45B:	60      	RTS

52: Switch Gau's names; create face
C3/F45C:	A420    	LDY $20        ; Delay expired?
C3/F45E:	D00D    	BNE $F46D      ; Exit if not
C3/F460:	E626    	INC $26        ; Next: C3/F46E
C3/F462:	20CEF8  	JSR $F8CE      ; Create face
C3/F465:	2040F1  	JSR $F140      ; Switch names
C3/F468:	A06801  	LDY #$0168     ; Frames: 360
C3/F46B:	8420    	STY $20        ; Set fade delay
C3/F46D:	60      	RTS

53: Fade all but Gau's name
C3/F46E:	A420    	LDY $20        ; Delay expired?
C3/F470:	D012    	BNE $F484      ; Exit if not
C3/F472:	A938    	LDA #$38       ; C3/F221
C3/F474:	8526    	STA $26        ; Next: Fd name
C3/F476:	A07800  	LDY #$0078     ; Fade delay
C3/F479:	8420    	STY $20        ; Set for name
C3/F47B:	207FF0  	JSR $F07F      ; Fade BGs
C3/F47E:	20D8F1  	JSR $F1D8      ; Fade face
C3/F481:	207FF7  	JSR $F77F      ; Scroll table
C3/F484:	60      	RTS

5A: Start Terra's scene
C3/F485:	A900    	LDA #$00       ; Actor: Terra
C3/F487:	20F3EF  	JSR $EFF3      ; Init BGs/font
C3/F48A:	201EFF  	JSR $FF1E      ; Draw glass; GFX
C3/F48D:	20CCF0  	JSR $F0CC      ; Fade in BGs
C3/F490:	20A2F3  	JSR $F3A2      ; Fade in glint
C3/F493:	2079F7  	JSR $F779      ; Scroll table
C3/F496:	A07800  	LDY #$0078     ; Fade-in delay
C3/F499:	8420    	STY $20        ; Set for name
C3/F49B:	4C5DF0  	JMP $F05D      ; Create text

5B: Fade in "Terra as"
C3/F49E:	A420    	LDY $20        ; Delay expired?
C3/F4A0:	D00A    	BNE $F4AC      ; Exit if not
C3/F4A2:	E626    	INC $26        ; Next: C3/F4AD
C3/F4A4:	2019F1  	JSR $F119      ; Queue fade-in
C3/F4A7:	A0F000  	LDY #$00F0     ; Switch delay
C3/F4AA:	8420    	STY $20        ; Set for names
C3/F4AC:	60      	RTS

5C: Switch Terra's names, create glint
C3/F4AD:	A420    	LDY $20        ; Delay expired?
C3/F4AF:	D00D    	BNE $F4BE      ; Exit if not
C3/F4B1:	E626    	INC $26        ; Next: C3/F4BF
C3/F4B3:	203DF9  	JSR $F93D      ; Create glint
C3/F4B6:	2040F1  	JSR $F140      ; Switch names
C3/F4B9:	A06801  	LDY #$0168     ; Frames: 360
C3/F4BC:	8420    	STY $20        ; Set fade delay
C3/F4BE:	60      	RTS

5D: Fade all but Terra's name
C3/F4BF:	A420    	LDY $20        ; Delay expired?
C3/F4C1:	D012    	BNE $F4D5      ; Exit if not
C3/F4C3:	A938    	LDA #$38       ; C3/F221
C3/F4C5:	8526    	STA $26        ; Next: Fd name
C3/F4C7:	A07800  	LDY #$0078     ; Fade delay
C3/F4CA:	8420    	STY $20        ; Set for name
C3/F4CC:	207FF0  	JSR $F07F      ; Fade BGs
C3/F4CF:	20D8F1  	JSR $F1D8      ; Fade glint
C3/F4D2:	207FF7  	JSR $F77F      ; Scroll table
C3/F4D5:	60      	RTS

64: Start Locke and Celes's scene
C3/F4D6:	A901    	LDA #$01       ; Actor: Locke
C3/F4D8:	20F3EF  	JSR $EFF3      ; Init BGs/font
C3/F4DB:	2034FF  	JSR $FF34      ; Draw bouquet
C3/F4DE:	20CCF0  	JSR $F0CC      ; Fade in BGs
C3/F4E1:	2079F7  	JSR $F779      ; Scroll table
C3/F4E4:	A0E0FF  	LDY #$FFE0     ; X: -32 = 480
C3/F4E7:	8435    	STY $35        ; Set BG1 X-Pos
C3/F4E9:	A07800  	LDY #$0078     ; Fade-in delay
C3/F4EC:	8420    	STY $20        ; Set for name
C3/F4EE:	4C5DF0  	JMP $F05D      ; Create text

65: Fade in "Locke as"
C3/F4F1:	A420    	LDY $20        ; Delay expired?
C3/F4F3:	D00A    	BNE $F4FF      ; Exit if not
C3/F4F5:	E626    	INC $26        ; Next: C3/F500
C3/F4F7:	2019F1  	JSR $F119      ; Queue fade-in
C3/F4FA:	A0F000  	LDY #$00F0     ; Switch delay
C3/F4FD:	8420    	STY $20        ; Set for alias
C3/F4FF:	60      	RTS

66: Switch Locke's names
C3/F500:	A420    	LDY $20        ; Delay expired?
C3/F502:	D00A    	BNE $F50E      ; Exit if not
C3/F504:	E626    	INC $26        ; Next: C3/F50F
C3/F506:	2040F1  	JSR $F140      ; Switch names
C3/F509:	A0F000  	LDY #$00F0     ; Intro delay
C3/F50C:	8420    	STY $20        ; Set for Celes
C3/F50E:	60      	RTS

67: Show Celes's name, fade Locke's
C3/F50F:	A420    	LDY $20        ; Delay expired?
C3/F511:	D01B    	BNE $F52E      ; Exit if not
C3/F513:	A400    	LDY $00        ; ...
C3/F515:	843F    	STY $3F        ; BG3 Y-Pos: 0
C3/F517:	A906    	LDA #$06       ; Actor: Celes
C3/F519:	8528    	STA $28        ; Set actor slot
C3/F51B:	20D1F7  	JSR $F7D1      ; Create "as"
C3/F51E:	208FF1  	JSR $F18F      ; Fade Locke
C3/F521:	20AFEE  	JSR $EEAF      ; Create Celes
C3/F524:	2019F1  	JSR $F119      ; Fade in Celes
C3/F527:	E626    	INC $26        ; Next: C3/F52F
C3/F529:	A07800  	LDY #$0078     ; Removal delay
C3/F52C:	8420    	STY $20        ; Set for Locke
C3/F52E:	60      	RTS

68: Delete Locke's name
C3/F52F:	A420    	LDY $20        ; Delay expired?
C3/F531:	D00B    	BNE $F53E      ; Exit if not
C3/F533:	A901    	LDA #$01       ; Erase name: Y
C3/F535:	8547    	STA $47        ; Set sprite flag
C3/F537:	E626    	INC $26        ; Next: C3/F53F
C3/F539:	A0B400  	LDY #$00B4     ; Switch delay
C3/F53C:	8420    	STY $20        ; Set for Celes
C3/F53E:	60      	RTS

69: Switch Celes's names
C3/F53F:	A420    	LDY $20        ; Delay expired?
C3/F541:	D014    	BNE $F557      ; Exit if not
C3/F543:	E626    	INC $26        ; Next: C3/F558
C3/F545:	A0B400  	LDY #$00B4     ; Frames: 180
C3/F548:	8420    	STY $20        ; Set fade delay
C3/F54A:	6447    	STZ $47        ; Erase name: N
C3/F54C:	A01400  	LDY #$0014     ; Frames: 20
C3/F54F:	8485    	STY $85        ; Set scroll delay
C3/F551:	205CEF  	JSR $EF5C      ; Create true name
C3/F554:	2040F1  	JSR $F140      ; Switch names
C3/F557:	60      	RTS

6A: Fade all but Celes's name
C3/F558:	A420    	LDY $20        ; Delay expired?
C3/F55A:	D012    	BNE $F56E      ; Exit if not
C3/F55C:	A938    	LDA #$38       ; C3/F221
C3/F55E:	8526    	STA $26        ; Next: Fd name
C3/F560:	A07800  	LDY #$0078     ; Fade delay
C3/F563:	8420    	STY $20        ; Set for name
C3/F565:	207FF0  	JSR $F07F      ; Fade BGs
C3/F568:	20D8F1  	JSR $F1D8      ; No sprites...
C3/F56B:	207FF7  	JSR $F77F      ; Scroll table
C3/F56E:	60      	RTS

6E: Start Relm's scene
C3/F56F:	A908    	LDA #$08       ; Actor: Relm
C3/F571:	20F3EF  	JSR $EFF3      ; Init BGs/font
C3/F574:	2047FF  	JSR $FF47      ; Draw brush; GFX
C3/F577:	20CCF0  	JSR $F0CC      ; Fade in BGs
C3/F57A:	20A2F3  	JSR $F3A2      ; Fade in glint
C3/F57D:	2079F7  	JSR $F779      ; Scroll table
C3/F580:	2067FB  	JSR $FB67      ; Queue glints
C3/F583:	A07800  	LDY #$0078     ; Fade-in delay
C3/F586:	8420    	STY $20        ; Set for name
C3/F588:	4C5DF0  	JMP $F05D      ; Create text

6F: Fade in "Relm as"
C3/F58B:	A420    	LDY $20        ; Delay expired?
C3/F58D:	D00A    	BNE $F599      ; Exit if not
C3/F58F:	E626    	INC $26        ; Next: C3/F59A
C3/F591:	2019F1  	JSR $F119      ; Queue fade-in
C3/F594:	A0F000  	LDY #$00F0     ; Switch delay
C3/F597:	8420    	STY $20        ; Set for names
C3/F599:	60      	RTS

70: Switch Relm's names
C3/F59A:	A420    	LDY $20        ; Delay expired?
C3/F59C:	D00A    	BNE $F5A8      ; Exit if not
C3/F59E:	E626    	INC $26        ; Next: C3/F5A9
C3/F5A0:	2040F1  	JSR $F140      ; Switch names
C3/F5A3:	A06801  	LDY #$0168     ; Frames: 360
C3/F5A6:	8420    	STY $20        ; Set fade delay
C3/F5A8:	60      	RTS

71: Fade all but Relm's name
C3/F5A9:	A420    	LDY $20        ; Delay expired?
C3/F5AB:	D012    	BNE $F5BF      ; Exit if not
C3/F5AD:	A938    	LDA #$38       ; C3/F221
C3/F5AF:	8526    	STA $26        ; Next: Fd name
C3/F5B1:	A07800  	LDY #$0078     ; Fade delay
C3/F5B4:	8420    	STY $20        ; Set for name
C3/F5B6:	207FF0  	JSR $F07F      ; Fade BGs
C3/F5B9:	20D8F1  	JSR $F1D8      ; Fade glint
C3/F5BC:	207FF7  	JSR $F77F      ; Scroll table
C3/F5BF:	60      	RTS

78: Start Strago's scene
C3/F5C0:	A907    	LDA #$07       ; Actor: Strago
C3/F5C2:	20F3EF  	JSR $EFF3      ; Init BGs/font
C3/F5C5:	205DFF  	JSR $FF5D      ; Draw book
C3/F5C8:	20CCF0  	JSR $F0CC      ; Fade in BGs
C3/F5CB:	20B9FC  	JSR $FCB9      ; Queue book fn
C3/F5CE:	A07800  	LDY #$0078     ; Fade-in delay
C3/F5D1:	8420    	STY $20        ; Set for name
C3/F5D3:	4C5DF0  	JMP $F05D      ; Create text

79: Fade in "Strago as"
C3/F5D6:	A420    	LDY $20        ; Delay expired?
C3/F5D8:	D00A    	BNE $F5E4      ; Exit if not
C3/F5DA:	E626    	INC $26        ; Next: C3/F5E5
C3/F5DC:	2019F1  	JSR $F119      ; Queue fade-in
C3/F5DF:	A0F000  	LDY #$00F0     ; Switch delay
C3/F5E2:	8420    	STY $20        ; Set for names
C3/F5E4:	60      	RTS

7A: Switch Strago's names
C3/F5E5:	A420    	LDY $20        ; Delay expired?
C3/F5E7:	D00A    	BNE $F5F3      ; Exit if not
C3/F5E9:	E626    	INC $26        ; Next: C3/F5F4
C3/F5EB:	2040F1  	JSR $F140      ; Switch names
C3/F5EE:	A06801  	LDY #$0168     ; Frames: 360
C3/F5F1:	8420    	STY $20        ; Set fade delay
C3/F5F3:	60      	RTS

7B: Fade all but Strago's name
C3/F5F4:	A420    	LDY $20        ; Delay expired?
C3/F5F6:	D00F    	BNE $F607      ; Exit if not
C3/F5F8:	A938    	LDA #$38       ; C3/F221
C3/F5FA:	8526    	STA $26        ; Next: Fd name
C3/F5FC:	A07800  	LDY #$0078     ; Fade delay
C3/F5FF:	8420    	STY $20        ; Set for name
C3/F601:	207FF0  	JSR $F07F      ; Fade BGs
C3/F604:	20D8F1  	JSR $F1D8      ; No sprites...
C3/F607:	60      	RTS

2D: Start first book scene
C3/F608:	20F3EF  	JSR $EFF3      ; Init BGs/font
C3/F60B:	205DFF  	JSR $FF5D      ; Draw book
C3/F60E:	20CCF0  	JSR $F0CC      ; Fade in BGs
C3/F611:	A0D002  	LDY #$02D0     ; Frames: 720
C3/F614:	8420    	STY $20        ; Set anim delay
C3/F616:	4C77F0  	JMP $F077      ; Queue BG1, etc.

2E: Animate first book
C3/F619:	A420    	LDY $20        ; Delay expired?
C3/F61B:	D00A    	BNE $F627      ; Exit if not
C3/F61D:	E626    	INC $26        ; Next: C3/F628
C3/F61F:	20CEFC  	JSR $FCCE      ; Queue book fn
C3/F622:	A0E001  	LDY #$01E0     ; Frames: 480
C3/F625:	8420    	STY $20        ; Set wait timer
C3/F627:	60      	RTS

2F: Wait 480 frames
C3/F628:	A420    	LDY $20        ; Delay expired?
C3/F62A:	D007    	BNE $F633      ; Exit if not
C3/F62C:	E626    	INC $26        ; Next: C3/F634
C3/F62E:	A06801  	LDY #$0168     ; Frames: 360
C3/F631:	8420    	STY $20        ; Set fade delay
C3/F633:	60      	RTS

30: Pixelate and fade first book
C3/F634:	A420    	LDY $20        ; Delay expired?
C3/F636:	D012    	BNE $F64A      ; Exit if not
C3/F638:	A938    	LDA #$38       ; C3/F221
C3/F63A:	8526    	STA $26        ; Next: Exit
C3/F63C:	2085F7  	JSR $F785      ; Queue mosaic
C3/F63F:	A07800  	LDY #$0078     ; Frames: 120x2
C3/F642:	8420    	STY $20        ; Set exit delay
C3/F644:	207FF0  	JSR $F07F      ; Fade BGs
C3/F647:	207FF7  	JSR $F77F      ; Scroll table
C3/F64A:	60      	RTS

4A: Start last book scene
C3/F64B:	20F3EF  	JSR $EFF3      ; Init BGs/font
C3/F64E:	205DFF  	JSR $FF5D      ; Draw book
C3/F651:	20CCF0  	JSR $F0CC      ; Fade in BGs
C3/F654:	20E3FC  	JSR $FCE3      ; Queue book fn
C3/F657:	A0B400  	LDY #$00B4     ; Frames: 180
C3/F65A:	8420    	STY $20        ; Set wait timer
C3/F65C:	6447    	STZ $47        ; Erase text: N
C3/F65E:	20D2EF  	JSR $EFD2      ; Create "And you"
C3/F661:	4C77F0  	JMP $F077      ; Queue BG1, etc.

4B: Wait 180 frames
C3/F664:	A420    	LDY $20        ; Delay expired?
C3/F666:	D007    	BNE $F66F      ; Exit if not
C3/F668:	E626    	INC $26        ; Next: C3/F670
C3/F66A:	A0EC00  	LDY #$00EC     ; Freeze delay
C3/F66D:	8420    	STY $20        ; Set for book
C3/F66F:	60      	RTS

4C: Stop last book and fade in text
C3/F670:	A420    	LDY $20        ; Delay expired?
C3/F672:	D00E    	BNE $F682      ; Exit if not
C3/F674:	A901    	LDA #$01       ; Last page: Y
C3/F676:	8599    	STA $99        ; Set book flag
C3/F678:	E626    	INC $26        ; Next: C3/F683
C3/F67A:	A06C01  	LDY #$016C     ; Frames: 364
C3/F67D:	8420    	STY $20        ; Set fade delay
C3/F67F:	2067F1  	JSR $F167      ; Queue fade-in
C3/F682:	60      	RTS

4D: Pixelate and fade last book
C3/F683:	A420    	LDY $20        ; Delay expired?
C3/F685:	D00F    	BNE $F696      ; Exit if not
C3/F687:	A938    	LDA #$38       ; C3/F221
C3/F689:	8526    	STA $26        ; Next: Fd text
C3/F68B:	2085F7  	JSR $F785      ; Queue mosaic
C3/F68E:	A07800  	LDY #$0078     ; Fade delay
C3/F691:	8420    	STY $20        ; Set for text
C3/F693:	207FF0  	JSR $F07F      ; Fade BGs
C3/F696:	60      	RTS

82: Start Setzer's scene
C3/F697:	A909    	LDA #$09       ; Actor: Setzer
C3/F699:	20F3EF  	JSR $EFF3      ; Init BGs/font
C3/F69C:	2070FF  	JSR $FF70      ; Upload cards
C3/F69F:	20CCF0  	JSR $F0CC      ; Fade in BGs
C3/F6A2:	A9C3    	LDA #$C3       ; Pal loc HB
C3/F6A4:	A08931  	LDY #$3189     ; To OBJ pal 2
C3/F6A7:	A25F11  	LDX #$115F     ; Pal loc LBs
C3/F6AA:	20F90F  	JSR $0FF9      ; Cards: Black
C3/F6AD:	A9C2    	LDA #$C2       ; Bank: C2
C3/F6AF:	85ED    	STA $ED        ; Set src HB
C3/F6B1:	A902    	LDA #$02       ; Slowness: 2
C3/F6B3:	A08931  	LDY #$3189     ; To OBJ pal 2
C3/F6B6:	84E7    	STY $E7        ; ...
C3/F6B8:	A26C97  	LDX #$976C     ; C2/976C
C3/F6BB:	86EB    	STX $EB        ; ...
C3/F6BD:	201510  	JSR $1015      ; Fade in cards
C3/F6C0:	2073F7  	JSR $F773      ; Scroll table
C3/F6C3:	201DF8  	JSR $F81D      ; Create cards
C3/F6C6:	A07800  	LDY #$0078     ; Fade-in delay
C3/F6C9:	8420    	STY $20        ; Set for alias
C3/F6CB:	4C5DF0  	JMP $F05D      ; Create text

83: Fade in "Setzer as"
C3/F6CE:	A420    	LDY $20        ; Delay expired?
C3/F6D0:	D00A    	BNE $F6DC      ; Exit if not
C3/F6D2:	E626    	INC $26        ; Next: C3/F6DD
C3/F6D4:	2019F1  	JSR $F119      ; Queue fade-in
C3/F6D7:	A0F000  	LDY #$00F0     ; Switch delay
C3/F6DA:	8420    	STY $20        ; Set for names
C3/F6DC:	60      	RTS

84: Switch Setzer's names
C3/F6DD:	A420    	LDY $20        ; Delay expired?
C3/F6DF:	D00A    	BNE $F6EB      ; Exit if not
C3/F6E1:	E626    	INC $26        ; Next: C3/F6EC
C3/F6E3:	2040F1  	JSR $F140      ; Switch names
C3/F6E6:	A06801  	LDY #$0168     ; Frames: 360
C3/F6E9:	8420    	STY $20        ; Set fade delay
C3/F6EB:	60      	RTS

85: Fade background
C3/F6EC:	A420    	LDY $20        ; Delay expired?
C3/F6EE:	D00A    	BNE $F6FA      ; Exit if not
C3/F6F0:	E626    	INC $26        ; Next: C3/F6FB
C3/F6F2:	A07800  	LDY #$0078     ; Fade delay
C3/F6F5:	8420    	STY $20        ; Set for cards
C3/F6F7:	207FF0  	JSR $F07F      ; Fade BGs
C3/F6FA:	60      	RTS

86: Fade cards and name
C3/F6FB:	A420    	LDY $20        ; Delay expired?
C3/F6FD:	D01F    	BNE $F71E      ; Exit if not
C3/F6FF:	A07800  	LDY #$0078     ; Frames: 120
C3/F702:	8420    	STY $20        ; Set exit delay
C3/F704:	A901    	LDA #$01       ; C3/D543
C3/F706:	8526    	STA $26        ; Next: Exit
C3/F708:	208FF1  	JSR $F18F      ; Fade name
C3/F70B:	A9C3    	LDA #$C3       ; ...
C3/F70D:	85ED    	STA $ED        ; ...
C3/F70F:	A904    	LDA #$04       ; Slowness: 4
C3/F711:	A08931  	LDY #$3189     ; To OBJ pal 2
C3/F714:	84E7    	STY $E7        ; ...
C3/F716:	A25F11  	LDX #$115F     ; Black palette
C3/F719:	86EB    	STX $EB        ; ...
C3/F71B:	201510  	JSR $1015      ; Fade cards
C3/F71E:	60      	RTS

87: Start Umaro's scene
C3/F71F:	A90D    	LDA #$0D       ; Actor: Umaro
C3/F721:	20F3EF  	JSR $EFF3      ; Init BGs/font
C3/F724:	20ACFF  	JSR $FFAC      ; Draw bones; GFX
C3/F727:	20CCF0  	JSR $F0CC      ; Fade in BGs
C3/F72A:	20C4F1  	JSR $F1C4      ; Fade in sprites
C3/F72D:	2079F7  	JSR $F779      ; Scroll table
C3/F730:	20FEF7  	JSR $F7FE      ; Create skull
C3/F733:	20B6F9  	JSR $F9B6      ; Create moogles
C3/F736:	A07800  	LDY #$0078     ; Fade-in delay
C3/F739:	8420    	STY $20        ; Set for alias
C3/F73B:	4C5DF0  	JMP $F05D      ; Create text

88: Fade in "Umaro as"
C3/F73E:	A420    	LDY $20        ; Delay expired?
C3/F740:	D00A    	BNE $F74C      ; Exit if not
C3/F742:	E626    	INC $26        ; Next: C3/F74D
C3/F744:	2019F1  	JSR $F119      ; Queue fade-in
C3/F747:	A0F000  	LDY #$00F0     ; Switch delay
C3/F74A:	8420    	STY $20        ; Set for names
C3/F74C:	60      	RTS

89: Switch Umaro's names
C3/F74D:	A420    	LDY $20        ; Delay expired?
C3/F74F:	D00A    	BNE $F75B      ; Exit if not
C3/F751:	E626    	INC $26        ; Next: C3/F75C
C3/F753:	2040F1  	JSR $F140      ; Switch names
C3/F756:	A06801  	LDY #$0168     ; Frames: 360
C3/F759:	8420    	STY $20        ; Set fade delay
C3/F75B:	60      	RTS

8A: Fade all but Umaro's name
C3/F75C:	A420    	LDY $20        ; Delay expired?
C3/F75E:	D012    	BNE $F772      ; Exit if not
C3/F760:	A938    	LDA #$38       ; C3/F221
C3/F762:	8526    	STA $26        ; Next: Fd name
C3/F764:	A07800  	LDY #$0078     ; Fade delay
C3/F767:	8420    	STY $20        ; Set for name
C3/F769:	207FF0  	JSR $F07F      ; Fade BGs
C3/F76C:	20D8F1  	JSR $F1D8      ; Fade sprites
C3/F76F:	207FF7  	JSR $F77F      ; Scroll table
C3/F772:	60      	RTS

Set to scroll BG1 westward for 20 seconds
C3/F773:	A0B004  	LDY #$04B0     ; Frames: 1200
C3/F776:	4C27EF  	JMP $EF27      ; Queue panning

Set to scroll BG1 westward for 5.2 seconds
C3/F779:	A03801  	LDY #$0138     ; Frames: 312
C3/F77C:	4C27EF  	JMP $EF27      ; Queue panning

Set to scroll BG1 westward for 3 seconds
C3/F77F:	A0B400  	LDY #$00B4     ; Frames: 180
C3/F782:	4C27EF  	JMP $EF27      ; Queue panning

Queue mosaic effect for book
C3/F785:	7B      	TDC            ; Min slot: 0
C3/F786:	A08CF7  	LDY #$F78C     ; C3/F78C
C3/F789:	4CDE11  	JMP $11DE      ; Queue anim fn

Handle mosaic effect for book
C3/F78C:	AA      	TAX            ; Index mode
C3/F78D:	7C90F7  	JMP ($F790,X)  ; Handle mode

Jump table for the above
C3/F790:	94F7    	; Initialize mosaic
C3/F792:	9FF7    	; Sustain mosaic

Mode 0: Initialize mosaic
C3/F794:	A62D    	LDX $2D        ; Queue index
C3/F796:	FE4936  	INC $3649,X    ; Mode +1
C3/F799:	9ECA33  	STZ $33CA,X    ; Intensity: 0
C3/F79C:	9E4933  	STZ $3349,X    ; Wait timer: 0

Mode 1: Sustain mosaic
C3/F79F:	A62D    	LDX $2D        ; Queue index
C3/F7A1:	BD4933  	LDA $3349,X    ; Delay expired?
C3/F7A4:	F005    	BEQ $F7AB      ; Proceed if so
C3/F7A6:	DE4933  	DEC $3349,X    ; Delay -1
C3/F7A9:	38      	SEC            ; Set to requeue
C3/F7AA:	60      	RTS            ; Exit
C3/F7AB:	BDCA33  	LDA $33CA,X    ; Intensity
C3/F7AE:	090F    	ORA #$0F       ; Layers: All
C3/F7B0:	85B5    	STA $B5        ; Set mosaic
C3/F7B2:	A62D    	LDX $2D        ; ...
C3/F7B4:	BDCA33  	LDA $33CA,X    ; Intensity
C3/F7B7:	18      	CLC            ; Prepare ADC
C3/F7B8:	6910    	ADC #$10       ; Intensity +1
C3/F7BA:	9DCA33  	STA $33CA,X    ; Save changes
C3/F7BD:	A910    	LDA #$10       ; Frames: 16
C3/F7BF:	9D4933  	STA $3349,X    ; Set next wait
C3/F7C2:	38      	SEC            ; Set to requeue
C3/F7C3:	60      	RTS

Scroll BG1 westward (unused)
C3/F7C4:	A523    	LDA $23        ; NMI count
C3/F7C6:	2903    	AND #$03       ; Now 0-3
C3/F7C8:	D006    	BNE $F7D0      ; Exit if > 0
C3/F7CA:	C220    	REP #$20       ; 16-bit A
C3/F7CC:	E635    	INC $35        ; BG1 X-Pos +1
C3/F7CE:	E220    	SEP #$20       ; 8-bit A
C3/F7D0:	60      	RTS

Create "as"
C3/F7D1:	A903    	LDA #$03       ; Min slot: 24
C3/F7D3:	A0D4ED  	LDY #$EDD4     ; C3/EDD4
C3/F7D6:	20DE11  	JSR $11DE      ; Queue anim fn
C3/F7D9:	C220    	REP #$20       ; 16-bit A
C3/F7DB:	A9288E  	LDA #$8E28     ; Anim table ptr
C3/F7DE:	9FC9327E	STA $7E32C9,X  ; Set sprite's
C3/F7E2:	A95802  	LDA #$0258     ; Frames: 600
C3/F7E5:	9F49337E	STA $7E3349,X  ; Set hide delay
C3/F7E9:	E220    	SEP #$20       ; 8-bit A
C3/F7EB:	A9C2    	LDA #$C2       ; Bank: C2
C3/F7ED:	9FCA357E	STA $7E35CA,X  ; Set ptr HB
C3/F7F1:	A979    	LDA #$79       ; X: 121
C3/F7F3:	9FCA337E	STA $7E33CA,X  ; Set sprite's
C3/F7F7:	A9C0    	LDA #$C0       ; Y: 192
C3/F7F9:	9F4A347E	STA $7E344A,X  ; Set sprite's
C3/F7FD:	60      	RTS

Create Umaro's skull
C3/F7FE:	200CF9  	JSR $F90C      ; Queue anim fn
C3/F801:	C220    	REP #$20       ; 16-bit A
C3/F803:	A91EF5  	LDA #$F51E     ; Anim table ptr
C3/F806:	9FC9327E	STA $7E32C9,X  ; Set sprite's
C3/F80A:	E220    	SEP #$20       ; 8-bit A
C3/F80C:	A9CF    	LDA #$CF       ; Bank: CF
C3/F80E:	9FCA357E	STA $7E35CA,X  ; Set ptr HB
C3/F812:	A9C4    	LDA #$C4       ; X: 196
C3/F814:	9FCA337E	STA $7E33CA,X  ; Set sprite's
C3/F818:	A94F    	LDA #$4F       ; Y: 79
C3/F81A:	4CA2F9  	JMP $F9A2      ; Set Y, pan flag

Create four playing cards
C3/F81D:	20B4F8  	JSR $F8B4      ; Queue card 1
C3/F820:	A978    	LDA #$78       ; X: 120
C3/F822:	9FCA337E	STA $7E33CA,X  ; Set card 1's
C3/F826:	A950    	LDA #$50       ; X: 80
C3/F828:	9FCA337E	STA $7E33CA,X  ; Should be Y...
C3/F82C:	C220    	REP #$20       ; 16-bit A
C3/F82E:	A98000  	LDA #$0080     ; V-Spd: +0.5 px
C3/F831:	9F49357E	STA $7E3549,X  ; Set card 1's
C3/F835:	A92000  	LDA #$0020     ; H-Spd: +0.125 px
C3/F838:	9FC9347E	STA $7E34C9,X  ; Set card 1's
C3/F83C:	E220    	SEP #$20       ; 8-bit A
C3/F83E:	20B4F8  	JSR $F8B4      ; Queue card 2
C3/F841:	A904    	LDA #$04       ; Pose timer: 4
C3/F843:	9FCA367E	STA $7E36CA,X  ; Overwritten...
C3/F847:	A948    	LDA #$48       ; X: 72
C3/F849:	9FCA337E	STA $7E33CA,X  ; Set card 2's
C3/F84D:	A9C0    	LDA #$C0       ; Y: 192
C3/F84F:	9F4A347E	STA $7E344A,X  ; Set card 2's
C3/F853:	C220    	REP #$20       ; 16-bit A
C3/F855:	A96000  	LDA #$0060     ; V-Spd: +0.375 px
C3/F858:	9F49357E	STA $7E3549,X  ; Set card 2's
C3/F85C:	A94000  	LDA #$0040     ; H-Spd: +0.25 px
C3/F85F:	9FC9347E	STA $7E34C9,X  ; Set card 2's
C3/F863:	E220    	SEP #$20       ; 8-bit A
C3/F865:	20B4F8  	JSR $F8B4      ; Queue card 3
C3/F868:	A90C    	LDA #$0C       ; Pose timer: 12
C3/F86A:	9FCA367E	STA $7E36CA,X  ; Overwritten...
C3/F86E:	A998    	LDA #$98       ; X: 152
C3/F870:	9FCA337E	STA $7E33CA,X  ; Set card 3's
C3/F874:	A910    	LDA #$10       ; Y: 16
C3/F876:	9F4A347E	STA $7E344A,X  ; Set card 3's
C3/F87A:	C220    	REP #$20       ; 16-bit A
C3/F87C:	A98000  	LDA #$0080     ; V-Spd: +0.5 px
C3/F87F:	9F49357E	STA $7E3549,X  ; Set card 3's
C3/F883:	A9E0FF  	LDA #$FFE0     ; H-Spd: -0.125 px
C3/F886:	9FC9347E	STA $7E34C9,X  ; Set card 3's
C3/F88A:	E220    	SEP #$20       ; 8-bit A
C3/F88C:	20B4F8  	JSR $F8B4      ; Queue card 4
C3/F88F:	A912    	LDA #$12       ; Pose timer: 18
C3/F891:	9FCA367E	STA $7E36CA,X  ; Overwritten...
C3/F895:	A9D0    	LDA #$D0       ; X: 208
C3/F897:	9FCA337E	STA $7E33CA,X  ; Set card 4's
C3/F89B:	A980    	LDA #$80       ; Y: 128
C3/F89D:	9F4A347E	STA $7E344A,X  ; Set card 4's
C3/F8A1:	C220    	REP #$20       ; 16-bit A
C3/F8A3:	A98000  	LDA #$0080     ; V-Spd: +0.5 px
C3/F8A6:	9F49357E	STA $7E3549,X  ; Set card 4's
C3/F8AA:	A9A000  	LDA #$00A0     ; H-Spd: +0.625 px
C3/F8AD:	9FC9347E	STA $7E34C9,X  ; Set card 4's
C3/F8B1:	E220    	SEP #$20       ; 8-bit A
C3/F8B3:	60      	RTS

Queue current playing card
C3/F8B4:	A900    	LDA #$00       ; Min slot: 0
C3/F8B6:	A0FBED  	LDY #$EDFB     ; C3/EDFB
C3/F8B9:	20DE11  	JSR $11DE      ; Queue anim fn
C3/F8BC:	C220    	REP #$20       ; 16-bit A
C3/F8BE:	A9F292  	LDA #$92F2     ; Anim table ptr
C3/F8C1:	9FC9327E	STA $7E32C9,X  ; Set sprite's
C3/F8C5:	E220    	SEP #$20       ; 8-bit A
C3/F8C7:	A9C2    	LDA #$C2       ; Bank: C2
C3/F8C9:	9FCA357E	STA $7E35CA,X  ; Set ptr HB
C3/F8CD:	60      	RTS

Create face in Gau's diving helmet
C3/F8CE:	200CF9  	JSR $F90C      ; Queue anim fn
C3/F8D1:	C220    	REP #$20       ; 16-bit A
C3/F8D3:	A9F7F5  	LDA #$F5F7     ; Anim table ptr
C3/F8D6:	9FC9327E	STA $7E32C9,X  ; Set sprite's
C3/F8DA:	E220    	SEP #$20       ; 8-bit A
C3/F8DC:	A9CF    	LDA #$CF       ; Bank: CF
C3/F8DE:	9FCA357E	STA $7E35CA,X  ; Set ptr HB
C3/F8E2:	A9CB    	LDA #$CB       ; X: 203
C3/F8E4:	9FCA337E	STA $7E33CA,X  ; Set sprite's
C3/F8E8:	A95F    	LDA #$5F       ; Y: 95
C3/F8EA:	4CA2F9  	JMP $F9A2      ; Set Y, pan flag

Create Shadow's apple
C3/F8ED:	200CF9  	JSR $F90C      ; Queue anim fn
C3/F8F0:	C220    	REP #$20       ; 16-bit A
C3/F8F2:	A98F94  	LDA #$948F     ; Anim table ptr
C3/F8F5:	9FC9327E	STA $7E32C9,X  ; Set sprite's
C3/F8F9:	E220    	SEP #$20       ; 8-bit A
C3/F8FB:	A9C2    	LDA #$C2       ; Bank: C2
C3/F8FD:	9FCA357E	STA $7E35CA,X  ; Set ptr HB
C3/F901:	A9C0    	LDA #$C0       ; X: 192
C3/F903:	9FCA337E	STA $7E33CA,X  ; Set sprite's
C3/F907:	A957    	LDA #$57       ; Y: 87
C3/F909:	4CA2F9  	JMP $F9A2      ; Set Y, pan flag

Queue regular permanent sprite
C3/F90C:	A903    	LDA #$03       ; Min slot: 24
C3/F90E:	A0FBED  	LDY #$EDFB     ; C3/EDFB
C3/F911:	20DE11  	JSR $11DE      ; Queue OAM fn
C3/F914:	60      	RTS

Queue regular permanent sprite (unused variant)
C3/F915:	A902    	LDA #$02       ; Min slot: 16
C3/F917:	A0FBED  	LDY #$EDFB     ; C3/EDFB
C3/F91A:	20DE11  	JSR $11DE      ; Queue OAM fn
C3/F91D:	60      	RTS

Create glowing eye in Gogo's helmet
C3/F91E:	200CF9  	JSR $F90C      ; Queue anim fn
C3/F921:	C220    	REP #$20       ; 16-bit A
C3/F923:	A900F4  	LDA #$F400     ; Anim table ptr
C3/F926:	9FC9327E	STA $7E32C9,X  ; Set sprite's
C3/F92A:	E220    	SEP #$20       ; 8-bit A
C3/F92C:	A9CF    	LDA #$CF       ; Bank: CF
C3/F92E:	9FCA357E	STA $7E35CA,X  ; Set ptr HB
C3/F932:	A9C8    	LDA #$C8       ; X: 200
C3/F934:	9FCA337E	STA $7E33CA,X  ; Set sprite's
C3/F938:	A961    	LDA #$61       ; Y: 97
C3/F93A:	4CA2F9  	JMP $F9A2      ; Set Y, pan flag

Create glint on Terra's pendant
C3/F93D:	200CF9  	JSR $F90C      ; Queue anim fn
C3/F940:	C220    	REP #$20       ; 16-bit A
C3/F942:	A964F5  	LDA #$F564     ; Anim table ptr
C3/F945:	9FC9327E	STA $7E32C9,X  ; Set sprite's
C3/F949:	E220    	SEP #$20       ; 8-bit A
C3/F94B:	A9CF    	LDA #$CF       ; Bank: CF
C3/F94D:	9FCA357E	STA $7E35CA,X  ; Set ptr HB
C3/F951:	A980    	LDA #$80       ; X: 128
C3/F953:	9FCA337E	STA $7E33CA,X  ; Set sprite's
C3/F957:	A960    	LDA #$60       ; Y: 96
C3/F959:	9F4A347E	STA $7E344A,X  ; Set sprite's
C3/F95D:	60      	RTS

Create Mog's mini moogles and winding key
C3/F95E:	200CF9  	JSR $F90C      ; Queue key anim
C3/F961:	C220    	REP #$20       ; 16-bit A
C3/F963:	A9C5F4  	LDA #$F4C5     ; Anim table ptr
C3/F966:	9FC9327E	STA $7E32C9,X  ; Set key's
C3/F96A:	E220    	SEP #$20       ; 8-bit A
C3/F96C:	A9CF    	LDA #$CF       ; Bank: CF
C3/F96E:	9FCA357E	STA $7E35CA,X  ; Set ptr HB
C3/F972:	A9E0    	LDA #$E0       ; X: 224
C3/F974:	9FCA337E	STA $7E33CA,X  ; Set key's
C3/F978:	A96F    	LDA #$6F       ; Y: 111
C3/F97A:	20A2F9  	JSR $F9A2      ; Set Y, pan flag
C3/F97D:	20ADF9  	JSR $F9AD      ; Queue moogle 1
C3/F980:	A9BA    	LDA #$BA       ; X: 186
C3/F982:	9FCA337E	STA $7E33CA,X  ; Set moogle 1's
C3/F986:	20ADF9  	JSR $F9AD      ; Queue moogle 2
C3/F989:	A9C6    	LDA #$C6       ; X: 198
C3/F98B:	9FCA337E	STA $7E33CA,X  ; Set moogle 2's
C3/F98F:	20ADF9  	JSR $F9AD      ; Queue moogle 3
C3/F992:	A9D1    	LDA #$D1       ; X: 209
C3/F994:	9FCA337E	STA $7E33CA,X  ; Set moogle 3's
C3/F998:	20ADF9  	JSR $F9AD      ; Queue moogle 4
C3/F99B:	A9DC    	LDA #$DC       ; X: 220
C3/F99D:	9FCA337E	STA $7E33CA,X  ; Set moogle 4's
C3/F9A1:	60      	RTS

Set sprite to pan with BG1, define Y position
C3/F9A2:	9F4A347E	STA $7E344A,X  ; Set Y position
C3/F9A6:	A901    	LDA #$01       ; Pans with BG1
C3/F9A8:	9F4A367E	STA $7E364A,X  ; Set sprite flags
C3/F9AC:	60      	RTS

Queue current mini moogle
C3/F9AD:	A902    	LDA #$02       ; Min slot: 16
C3/F9AF:	A036FA  	LDY #$FA36     ; C3/FA36
C3/F9B2:	20DE11  	JSR $11DE      ; Queue anim fn
C3/F9B5:	60      	RTS

Create Umaro's moogles
C3/F9B6:	20ADF9  	JSR $F9AD      ; Queue moogle 1
C3/F9B9:	202FFA  	JSR $FA2F      ; Anim mode: 5
C3/F9BC:	A93A    	LDA #$3A       ; Base X: 58
C3/F9BE:	9FCA337E	STA $7E33CA,X  ; Set moogle 1's
C3/F9C2:	C220    	REP #$20       ; 16-bit A
C3/F9C4:	A9A401  	LDA #$01A4     ; Frames: 420
C3/F9C7:	9F49337E	STA $7E3349,X  ; Set walk timer
C3/F9CB:	A92FF4  	LDA #$F42F     ; Bump anim ptr
C3/F9CE:	9FC9377E	STA $7E37C9,X  ; Set moogle 1's
C3/F9D2:	E220    	SEP #$20       ; 8-bit A
C3/F9D4:	20ADF9  	JSR $F9AD      ; Queue moogle 2
C3/F9D7:	202FFA  	JSR $FA2F      ; Anim mode: 5
C3/F9DA:	A92E    	LDA #$2E       ; Base X: 46
C3/F9DC:	9FCA337E	STA $7E33CA,X  ; Set moogle2's
C3/F9E0:	C220    	REP #$20       ; 16-bit A
C3/F9E2:	A9B801  	LDA #$01B8     ; Frames: 440
C3/F9E5:	9F49337E	STA $7E3349,X  ; Set walk timer
C3/F9E9:	A935F4  	LDA #$F435     ; Bump anim ptr
C3/F9EC:	9FC9377E	STA $7E37C9,X  ; Set moogle2's
C3/F9F0:	E220    	SEP #$20       ; 8-bit A
C3/F9F2:	20ADF9  	JSR $F9AD      ; Queue moogle 3
C3/F9F5:	202FFA  	JSR $FA2F      ; Anim mode: 5
C3/F9F8:	A921    	LDA #$21       ; Base X: 33
C3/F9FA:	9FCA337E	STA $7E33CA,X  ; Set moogle 3's
C3/F9FE:	C220    	REP #$20       ; 16-bit A
C3/FA00:	A9CC01  	LDA #$01CC     ; Frames: 460
C3/FA03:	9F49337E	STA $7E3349,X  ; Set walk timer
C3/FA07:	A93BF4  	LDA #$F43B     ; Bump anim ptr
C3/FA0A:	9FC9377E	STA $7E37C9,X  ; Set moogle 3's
C3/FA0E:	E220    	SEP #$20       ; 8-bit A
C3/FA10:	20ADF9  	JSR $F9AD      ; Queue moogle 4
C3/FA13:	202FFA  	JSR $FA2F      ; Anim mode: 5
C3/FA16:	A914    	LDA #$14       ; Base X: 20
C3/FA18:	9FCA337E	STA $7E33CA,X  ; Set moogle 3's
C3/FA1C:	C220    	REP #$20       ; 16-bit A
C3/FA1E:	A9E001  	LDA #$01E0     ; Frames: 480
C3/FA21:	9F49337E	STA $7E3349,X  ; Set walk timer
C3/FA25:	A941F4  	LDA #$F441     ; Bump anim ptr
C3/FA28:	9FC9377E	STA $7E37C9,X  ; Set moogle 4's
C3/FA2C:	E220    	SEP #$20       ; 8-bit A
C3/FA2E:	60      	RTS

Initialize moogle's animation mode for Umaro
C3/FA2F:	A905    	LDA #$05       ; Approach bones
C3/FA31:	9F49367E	STA $7E3649,X  ; Set anim mode
C3/FA35:	60      	RTS

Animate mini moogle
C3/FA36:	AA      	TAX            ; Index mode
C3/FA37:	7C3AFA  	JMP ($FA3A,X)  ; Handle mode

Jump table
C3/FA3A:	4AFA    	; Initialize data
C3/FA3C:	6FFA    	; Spin around
C3/FA3E:	98FA    	; Face left
C3/FA40:	B5FA    	; Jump down
C3/FA42:	D1FA    	; Walk away from tree
C3/FA44:	D6FA    	; Initialize data
C3/FA46:	E3FA    	; Walk toward bones
C3/FA48:	0AFB    	; Stop and fall down

Mode 0: Initialize data
C3/FA4A:	A62D    	LDX $2D        ; Queue index
C3/FA4C:	FE4936  	INC $3649,X    ; Mode +1
C3/FA4F:	C220    	REP #$20       ; 16-bit A
C3/FA51:	A908F4  	LDA #$F408     ; Anim table ptr
C3/FA54:	9DC932  	STA $32C9,X    ; Set sprite's
C3/FA57:	A96801  	LDA #$0168     ; Frames: 360
C3/FA5A:	9D4933  	STA $3349,X    ; Set spin timer
C3/FA5D:	E220    	SEP #$20       ; 8-bit A
C3/FA5F:	A964    	LDA #$64       ; Y: 100
C3/FA61:	9D4A34  	STA $344A,X    ; Set sprite's
C3/FA64:	A9CF    	LDA #$CF       ; Bank: CF
C3/FA66:	9DCA35  	STA $35CA,X    ; Set ptr HB
C3/FA69:	20A6F9  	JSR $F9A6      ; Follow BG1: Y
C3/FA6C:	207112  	JSR $1271      ; Set pose timer

Mode 1: Spin around
C3/FA6F:	A62D    	LDX $2D        ; Queue index
C3/FA71:	BC4933  	LDY $3349,X    ; Mode expired?
C3/FA74:	D01A    	BNE $FA90      ; Branch if not
C3/FA76:	FE4936  	INC $3649,X    ; Mode +1
C3/FA79:	C220    	REP #$20       ; 16-bit A
C3/FA7B:	A92CF4  	LDA #$F42C     ; Anim table ptr
C3/FA7E:	9DC932  	STA $32C9,X    ; Set sprite's
C3/FA81:	E220    	SEP #$20       ; 8-bit A
C3/FA83:	A9CF    	LDA #$CF       ; Bank: CF
C3/FA85:	9DCA35  	STA $35CA,X    ; Set ptr HB
C3/FA88:	A910    	LDA #$10       ; Frames: 16
C3/FA8A:	9D4933  	STA $3349,X    ; Set jump timer
C3/FA8D:	207112  	JSR $1271      ; Set pose timer
C3/FA90:	2069DF  	JSR $DF69      ; Mode timer -1
C3/FA93:	2010EE  	JSR $EE10      ; Scroll & OAM
C3/FA96:	38      	SEC            ; Set to requeue
C3/FA97:	60      	RTS

Mode 2: Jump down
C3/FA98:	A62D    	LDX $2D        ; Queue index
C3/FA9A:	BC4933  	LDY $3349,X    ; Mode expired?
C3/FA9D:	D008    	BNE $FAA7      ; Branch if not
C3/FA9F:	FE4936  	INC $3649,X    ; Mode +1
C3/FAA2:	A93C    	LDA #$3C       ; Frames: 60
C3/FAA4:	9D4933  	STA $3349,X    ; Set walk delay
C3/FAA7:	2069DF  	JSR $DF69      ; Mode timer -1
C3/FAAA:	202AFB  	JSR $FB2A      ; Adjust Y-Pos
C3/FAAD:	2010EE  	JSR $EE10      ; Scroll & OAM
C3/FAB0:	FEC935  	INC $35C9,X    ; Y-Pos mod +1
C3/FAB3:	38      	SEC            ; Set to requeue
C3/FAB4:	60      	RTS

Mode 3: Face left
C3/FAB5:	A62D    	LDX $2D        ; Queue index
C3/FAB7:	BC4933  	LDY $3349,X    ; Mode expired?
C3/FABA:	D00D    	BNE $FAC9      ; Branch if not
C3/FABC:	200FFB  	JSR $FB0F      ; Set to walk
C3/FABF:	C220    	REP #$20       ; 16-bit A
C3/FAC1:	A92C01  	LDA #$012C     ; Frames: 300
C3/FAC4:	9D4933  	STA $3349,X    ; No use...
C3/FAC7:	E220    	SEP #$20       ; 8-bit A
C3/FAC9:	2069DF  	JSR $DF69      ; Mode timer -1
C3/FACC:	2010EE  	JSR $EE10      ; Scroll & OAM
C3/FACF:	38      	SEC            ; Set to requeue
C3/FAD0:	60      	RTS

Mode 4: Walk away from tree
C3/FAD1:	2010EE  	JSR $EE10      ; Scroll & OAM
C3/FAD4:	38      	SEC            ; Set to requeue
C3/FAD5:	60      	RTS

Mode 5: Initialize data
C3/FAD6:	A62D    	LDX $2D        ; Queue index
C3/FAD8:	200FFB  	JSR $FB0F      ; Set to walk
C3/FADB:	A970    	LDA #$70       ; Y: 112
C3/FADD:	9D4A34  	STA $344A,X    ; Set sprite's
C3/FAE0:	20A6F9  	JSR $F9A6      ; Follow BG1: Y

Mode 6: Walk toward bones
C3/FAE3:	A62D    	LDX $2D        ; Queue index
C3/FAE5:	BC4933  	LDY $3349,X    ; Mode expired?
C3/FAE8:	D018    	BNE $FB02      ; Branch if not
C3/FAEA:	FE4936  	INC $3649,X    ; Mode +1
C3/FAED:	C220    	REP #$20       ; 16-bit A
C3/FAEF:	9EC934  	STZ $34C9,X    ; H-Speed: 0
C3/FAF2:	BDC937  	LDA $37C9,X    ; Queue anim ptr
C3/FAF5:	9DC932  	STA $32C9,X    ; Set as current
C3/FAF8:	E220    	SEP #$20       ; 8-bit A
C3/FAFA:	A9CF    	LDA #$CF       ; Bank: CF
C3/FAFC:	9DCA35  	STA $35CA,X    ; Set ptr HB
C3/FAFF:	207112  	JSR $1271      ; Set pose timer
C3/FB02:	2069DF  	JSR $DF69      ; Mode timer -1
C3/FB05:	2010EE  	JSR $EE10      ; Scroll & OAM
C3/FB08:	38      	SEC            ; Set to requeue
C3/FB09:	60      	RTS

Mode 7: Stop and fall down
C3/FB0A:	2010EE  	JSR $EE10      ; Scroll & OAM
C3/FB0D:	38      	SEC            ; Set to requeue
C3/FB0E:	60      	RTS

Set mini moogle to walk eastward
C3/FB0F:	FE4936  	INC $3649,X    ; Mode +1
C3/FB12:	C220    	REP #$20       ; 16-bit A
C3/FB14:	A923F4  	LDA #$F423     ; Anim table ptr
C3/FB17:	9DC932  	STA $32C9,X    ; Set sprite's
C3/FB1A:	A94000  	LDA #$0040     ; H-Spd: +0.25 px
C3/FB1D:	9DC934  	STA $34C9,X    ; Set sprite's
C3/FB20:	E220    	SEP #$20       ; 8-bit A
C3/FB22:	A9CF    	LDA #$CF       ; Bank: CF
C3/FB24:	9DCA35  	STA $35CA,X    ; Set ptr HB
C3/FB27:	4C7112  	JMP $1271      ; Set pose timer

Adjust jumping mini moogle's Y position
C3/FB2A:	A62D    	LDX $2D        ; Queue index
C3/FB2C:	BDC935  	LDA $35C9,X    ; Modifier index
C3/FB2F:	290F    	AND #$0F       ; ...
C3/FB31:	AA      	TAX            ; Index it
C3/FB32:	BF0EF5CF	LDA $CFF50E,X  ; Y modifier
C3/FB36:	85E0    	STA $E0        ; Memorize it
C3/FB38:	300D    	BMI $FB47      ; Branch if up
C3/FB3A:	A62D    	LDX $2D        ; Queue index
C3/FB3C:	BD4A34  	LDA $344A,X    ; Sprite's Y
C3/FB3F:	18      	CLC            ; Prepare ADC
C3/FB40:	65E0    	ADC $E0        ; Add modifier
C3/FB42:	9D4A34  	STA $344A,X    ; Save changes
C3/FB45:	8016    	BRA $FB5D      ; Exit

Fork: Shift upward
C3/FB47:	A62D    	LDX $2D        ; Queue index
C3/FB49:	ADE000  	LDA $00E0      ; Y modifier
C3/FB4C:	1003    	BPL $FB51      ; ...
C3/FB4E:	49FF    	EOR #$FF       ; Invert it
C3/FB50:	1A      	INC A          ; Add 1
C3/FB51:	8DE000  	STA $00E0      ; Save changes
C3/FB54:	BD4A34  	LDA $344A,X    ; Sprite's Y
C3/FB57:	38      	SEC            ; Prepare SBC
C3/FB58:	E5E0    	SBC $E0        ; Sub modifier
C3/FB5A:	9D4A34  	STA $344A,X    ; Save changes
C3/FB5D:	60      	RTS

Queue double-headed coin
C3/FB5E:	A902    	LDA #$02       ; Min slot: 16
C3/FB60:	A073FC  	LDY #$FC73     ; C3/FC73
C3/FB63:	20DE11  	JSR $11DE      ; Queue anim fn
C3/FB66:	60      	RTS

Set to create glints on brush
C3/FB67:	A900    	LDA #$00       ; Min slot: 0
C3/FB69:	A082FB  	LDY #$FB82     ; C3/FB82
C3/FB6C:	20DE11  	JSR $11DE      ; Queue anim fn
C3/FB6F:	60      	RTS

Set to create glints on katana
C3/FB70:	A900    	LDA #$00       ; Min slot: 0
C3/FB72:	A0E8FB  	LDY #$FBE8     ; C3/FBE8
C3/FB75:	20DE11  	JSR $11DE      ; Queue anim fn
C3/FB78:	60      	RTS

Queue brush or katana glint
C3/FB79:	A902    	LDA #$02       ; Min slot: 16
C3/FB7B:	A04EFC  	LDY #$FC4E     ; C3/FC4E
C3/FB7E:	20DE11  	JSR $11DE      ; Queue anim fn
C3/FB81:	60      	RTS

Create a series of glints on Relm's brush
C3/FB82:	AA      	TAX            ; Index mode
C3/FB83:	7C86FB  	JMP ($FB86,X)  ; Handle mode

Jump table for the above
C3/FB86:	8AFB    	; Initialize wave
C3/FB88:	A1FB    	; Create wave

Mode 0: Initialize wave
C3/FB8A:	A62D    	LDX $2D        ; Queue index
C3/FB8C:	FE4936  	INC $3649,X    ; Mode +1
C3/FB8F:	C220    	REP #$20       ; 16-bit A
C3/FB91:	A96801  	LDA #$0168     ; Frames: 360
C3/FB94:	9D4933  	STA $3349,X    ; Set wave delay
C3/FB97:	E220    	SEP #$20       ; 8-bit A
C3/FB99:	A9E4    	LDA #$E4       ; X: 228
C3/FB9B:	85C7    	STA $C7        ; Set base X
C3/FB9D:	A903    	LDA #$03       ; Glints: 3
C3/FB9F:	85C9    	STA $C9        ; Set counter

Mode 1: Create wave
C3/FBA1:	A5C9    	LDA $C9        ; Glints left
C3/FBA3:	F041    	BEQ $FBE6      ; Dequeue if 0
C3/FBA5:	A62D    	LDX $2D        ; Queue index
C3/FBA7:	BC4933  	LDY $3349,X    ; Delay expired?
C3/FBAA:	D035    	BNE $FBE1      ; Branch if not
C3/FBAC:	A908    	LDA #$08       ; Frames: 8
C3/FBAE:	9D4933  	STA $3349,X    ; Set next delay
C3/FBB1:	8B      	PHB            ; Save DB
C3/FBB2:	A900    	LDA #$00       ; ...
C3/FBB4:	48      	PHA            ; ...
C3/FBB5:	AB      	PLB            ; ...
C3/FBB6:	2079FB  	JSR $FB79      ; Queue glint
C3/FBB9:	A968    	LDA #$68       ; Y: 104
C3/FBBB:	9F4A347E	STA $7E344A,X  ; Set glint's
C3/FBBF:	C220    	REP #$20       ; 16-bit A
C3/FBC1:	A964F5  	LDA #$F564     ; Anim table ptr
C3/FBC4:	9FC9327E	STA $7E32C9,X  ; Set glint's
C3/FBC8:	E220    	SEP #$20       ; 8-bit A
C3/FBCA:	A9CF    	LDA #$CF       ; Bank: CF
C3/FBCC:	9FCA357E	STA $7E35CA,X  ; Set ptr HB
C3/FBD0:	A5C7    	LDA $C7        ; Base X
C3/FBD2:	9FCA337E	STA $7E33CA,X  ; Set glint's
C3/FBD6:	AB      	PLB            ; Restore DB
C3/FBD7:	C6C7    	DEC $C7        ; Base X -1
C3/FBD9:	C6C7    	DEC $C7        ; Base X -1
C3/FBDB:	C6C7    	DEC $C7        ; Base X -1
C3/FBDD:	C6C7    	DEC $C7        ; Base X -1
C3/FBDF:	C6C9    	DEC $C9        ; Glints left -1
C3/FBE1:	2069DF  	JSR $DF69      ; Delay -1
C3/FBE4:	38      	SEC            ; Set to requeue
C3/FBE5:	60      	RTS            ; Exit
C3/FBE6:	18      	CLC            ; Set to dequeue
C3/FBE7:	60      	RTS

Create a series of glints on Cyan's katana
C3/FBE8:	AA      	TAX            ; Index mode
C3/FBE9:	7CECFB  	JMP ($FBEC,X)  ; Handle mode

Jump table for the above
C3/FBEC:	F0FB    	; Initialize wave
C3/FBEE:	07FC    	; Create wave

Mode 0: Initialize wave
C3/FBF0:	A62D    	LDX $2D        ; Queue index
C3/FBF2:	FE4936  	INC $3649,X    ; Mode +1
C3/FBF5:	C220    	REP #$20       ; 16-bit A
C3/FBF7:	A96801  	LDA #$0168     ; Frames: 360
C3/FBFA:	9D4933  	STA $3349,X    ; Set wave delay
C3/FBFD:	E220    	SEP #$20       ; 8-bit A
C3/FBFF:	A9C8    	LDA #$C8       ; X: 200
C3/FC01:	85C7    	STA $C7        ; Set base X
C3/FC03:	A904    	LDA #$04       ; Glints: 4
C3/FC05:	85C9    	STA $C9        ; Set counter

Mode 1: Create wave
C3/FC07:	A5C9    	LDA $C9        ; Glints left
C3/FC09:	F041    	BEQ $FC4C      ; Dequeue if 0
C3/FC0B:	A62D    	LDX $2D        ; Queue index
C3/FC0D:	BC4933  	LDY $3349,X    ; Delay expired?
C3/FC10:	D035    	BNE $FC47      ; Branch if not
C3/FC12:	A908    	LDA #$08       ; Frames: 8
C3/FC14:	9D4933  	STA $3349,X    ; Set next delay
C3/FC17:	8B      	PHB            ; Save DB
C3/FC18:	A900    	LDA #$00       ; ...
C3/FC1A:	48      	PHA            ; ...
C3/FC1B:	AB      	PLB            ; ...
C3/FC1C:	2079FB  	JSR $FB79      ; Queue glint
C3/FC1F:	A960    	LDA #$60       ; Y: 96
C3/FC21:	9F4A347E	STA $7E344A,X  ; Set glint's
C3/FC25:	C220    	REP #$20       ; 16-bit A
C3/FC27:	A9AAF5  	LDA #$F5AA     ; Anim table ptr
C3/FC2A:	9FC9327E	STA $7E32C9,X  ; Set glint's
C3/FC2E:	E220    	SEP #$20       ; 8-bit A
C3/FC30:	A9CF    	LDA #$CF       ; Bank: CF
C3/FC32:	9FCA357E	STA $7E35CA,X  ; Set ptr HB
C3/FC36:	A5C7    	LDA $C7        ; Base X
C3/FC38:	9FCA337E	STA $7E33CA,X  ; Set glint's
C3/FC3C:	AB      	PLB            ; Restore DB
C3/FC3D:	C6C7    	DEC $C7        ; Base X -1
C3/FC3F:	C6C7    	DEC $C7        ; Base X -1
C3/FC41:	C6C7    	DEC $C7        ; Base X -1
C3/FC43:	C6C7    	DEC $C7        ; Base X -1
C3/FC45:	C6C9    	DEC $C9        ; Glints left -1
C3/FC47:	2069DF  	JSR $DF69      ; Delay -1
C3/FC4A:	38      	SEC            ; Set to requeue
C3/FC4B:	60      	RTS            ; Exit
C3/FC4C:	18      	CLC            ; Set to dequeue
C3/FC4D:	60      	RTS

Animate glint on brush or katana
C3/FC4E:	AA      	TAX            ; Index mode
C3/FC4F:	7C52FC  	JMP ($FC52,X)  ; Handle mode

Jump table for the above
C3/FC52:	56FC    	; Initialize sprite
C3/FC54:	63FC    	; Sustain sprite

Mode 0: Initialize sprite
C3/FC56:	A62D    	LDX $2D        ; Queue index
C3/FC58:	FE4936  	INC $3649,X    ; Mode +1
C3/FC5B:	A901    	LDA #$01       ; Pans with BG1
C3/FC5D:	9D4A36  	STA $364A,X    ; Set OBJ flags
C3/FC60:	207112  	JSR $1271      ; Set pose timer

Mode 1: Sustain sprite
C3/FC63:	A62D    	LDX $2D        ; Queue index
C3/FC65:	BDCA36  	LDA $36CA,X    ; Pose timer
C3/FC68:	C9FE    	CMP #$FE       ; Set as endless?
C3/FC6A:	F005    	BEQ $FC71      ; Delete if so
C3/FC6C:	2010EE  	JSR $EE10      ; Scroll & OAM
C3/FC6F:	38      	SEC            ; Set to requeue
C3/FC70:	60      	RTS            ; Exit
C3/FC71:	18      	CLC            ; Set to dequeue
C3/FC72:	60      	RTS

Animate double-headed coin
C3/FC73:	AA      	TAX            ; Index mode
C3/FC74:	7C77FC  	JMP ($FC77,X)  ; Handle mode

Jump table for the above
C3/FC77:	7BFC    	; Initialize sprite
C3/FC79:	A7FC    	; Sustain sprite

Mode 0: Initialize sprite
C3/FC7B:	A62D    	LDX $2D        ; Queue index
C3/FC7D:	FE4936  	INC $3649,X    ; Mode +1
C3/FC80:	C220    	REP #$20       ; 16-bit A
C3/FC82:	A91DED  	LDA #$ED1D     ; Anim table ptr
C3/FC85:	9DC932  	STA $32C9,X    ; Set sprite's
C3/FC88:	A98000  	LDA #$0080     ; H-Spd: +0.5 px
C3/FC8B:	9DC934  	STA $34C9,X    ; Set sprite's
C3/FC8E:	E220    	SEP #$20       ; 8-bit A
C3/FC90:	A9C8    	LDA #$C8       ; Frames: 200
C3/FC92:	9D4933  	STA $3349,X    ; Set roll timer
C3/FC95:	A9D8    	LDA #$D8       ; Bank: D8
C3/FC97:	9DCA35  	STA $35CA,X    ; Set ptr HB
C3/FC9A:	A910    	LDA #$10       ; X: 16
C3/FC9C:	9DCA33  	STA $33CA,X    ; Set sprite's
C3/FC9F:	A964    	LDA #$64       ; Y: 100
C3/FCA1:	9D4A34  	STA $344A,X    ; Set sprite's
C3/FCA4:	207112  	JSR $1271      ; Set pose timer

Mode 1: Sustain sprite
C3/FCA7:	A62D    	LDX $2D        ; Queue index
C3/FCA9:	BD4933  	LDA $3349,X    ; Stop rolling?
C3/FCAC:	D003    	BNE $FCB1      ; Branch if not
C3/FCAE:	9EC934  	STZ $34C9,X    ; H-Speed: 0
C3/FCB1:	DE4933  	DEC $3349,X    ; Roll timer -1
C3/FCB4:	2010EE  	JSR $EE10      ; Scroll & OAM
C3/FCB7:	38      	SEC            ; Set to requeue
C3/FCB8:	60      	RTS

Set to animate Strago's book
C3/FCB9:	20F8FC  	JSR $FCF8      ; Queue anim fn
C3/FCBC:	C220    	REP #$20       ; 16-bit A
C3/FCBE:	A9628B  	LDA #$8B62     ; Anim table ptr
C3/FCC1:	9FC9327E	STA $7E32C9,X  ; Set book's
C3/FCC5:	E220    	SEP #$20       ; 8-bit A
C3/FCC7:	A9C2    	LDA #$C2       ; Bank: C2
C3/FCC9:	9FCA357E	STA $7E35CA,X  ; Set ptr HB
C3/FCCD:	60      	RTS

Set to animate first book
C3/FCCE:	20F8FC  	JSR $FCF8      ; Queue anim fn
C3/FCD1:	C220    	REP #$20       ; 16-bit A
C3/FCD3:	A9538B  	LDA #$8B53     ; Anim table ptr
C3/FCD6:	9FC9327E	STA $7E32C9,X  ; Set book's
C3/FCDA:	E220    	SEP #$20       ; 8-bit A
C3/FCDC:	A9C2    	LDA #$C2       ; Bank: C2
C3/FCDE:	9FCA357E	STA $7E35CA,X  ; Set ptr HB
C3/FCE2:	60      	RTS

Set to animate last book
C3/FCE3:	20F8FC  	JSR $FCF8      ; Queue anim fn
C3/FCE6:	C220    	REP #$20       ; 16-bit A
C3/FCE8:	A9358B  	LDA #$8B35     ; Anim table ptr
C3/FCEB:	9FC9327E	STA $7E32C9,X  ; Set book's
C3/FCEF:	E220    	SEP #$20       ; 8-bit A
C3/FCF1:	A9C2    	LDA #$C2       ; Bank: C2
C3/FCF3:	9FCA357E	STA $7E35CA,X  ; Set ptr HB
C3/FCF7:	60      	RTS

Set to animate book
C3/FCF8:	7B      	TDC            ; Clear A
C3/FCF9:	A8      	TAY            ; Clear Y
C3/FCFA:	8599    	STA $99        ; Last page: N
C3/FCFC:	8460    	STY $60        ; Always 0...
C3/FCFE:	A901    	LDA #$01       ; Min slot: 8
C3/FD00:	A03EFD  	LDY #$FD3E     ; C3/FD3E
C3/FD03:	20DE11  	JSR $11DE      ; Queue anim fn
C3/FD06:	60      	RTS

Integrate decompressed tilemap segment, adjust attributes
C3/FD07:	86E7    	STX $E7        ; Set src LBs
C3/FD09:	A97F    	LDA #$7F       ; Bank: 7F
C3/FD0B:	85E9    	STA $E9        ; Set src HB
C3/FD0D:	84EB    	STY $EB        ; Set dst LBs
C3/FD0F:	A97E    	LDA #$7E       ; Bank: 7E
C3/FD11:	85ED    	STA $ED        ; Set dst HB
C3/FD13:	A600    	LDX $00        ; Rows done: 0
C3/FD15:	C220    	REP #$20       ; 16-bit A
C3/FD17:	7B      	TDC            ; Clear A
C3/FD18:	A8      	TAY            ; Index: 0
C3/FD19:	B7E7    	LDA [$E7],Y    ; Attributes
C3/FD1B:	18      	CLC            ; Prepare ADC
C3/FD1C:	6560    	ADC $60        ; Always 0...
C3/FD1E:	97EB    	STA [$EB],Y    ; Put in map
C3/FD20:	C8      	INY            ; Index +1
C3/FD21:	C8      	INY            ; Index +1
C3/FD22:	C4E0    	CPY $E0        ; End of row?
C3/FD24:	D0F3    	BNE $FD19      ; Loop if not
C3/FD26:	A5E7    	LDA $E7        ; Source LBs
C3/FD28:	18      	CLC            ; Prepare ADC
C3/FD29:	694000  	ADC #$0040     ; Go 1 row down
C3/FD2C:	85E7    	STA $E7        ; Save changes
C3/FD2E:	A5EB    	LDA $EB        ; Dest LBs
C3/FD30:	18      	CLC            ; Prepare ADC
C3/FD31:	694000  	ADC #$0040     ; Go 1 row down
C3/FD34:	85EB    	STA $EB        ; Save changes
C3/FD36:	E8      	INX            ; Rows done +1
C3/FD37:	E4E2    	CPX $E2        ; More left?
C3/FD39:	D0DC    	BNE $FD17      ; Loop if so
C3/FD3B:	E220    	SEP #$20       ; 8-bit A
C3/FD3D:	60      	RTS

Animate book
C3/FD3E:	AA      	TAX            ; Index mode
C3/FD3F:	7C42FD  	JMP ($FD42,X)  ; Handle mode

Jump table for the above
C3/FD42:	48FD    	; Initialize timer
C3/FD44:	52FD    	; Check if last page
C3/FD46:	56FD    	; Update tilemap

Mode 0: Initialize timer
C3/FD48:	A62D    	LDX $2D        ; Queue index
C3/FD4A:	FE4936  	INC $3649,X    ; Mode +1
C3/FD4D:	207112  	JSR $1271      ; Set pose timer
C3/FD50:	38      	SEC            ; Set to requeue
C3/FD51:	60      	RTS

Mode 1: Check if last page
C3/FD52:	A599    	LDA $99        ; Last page?
C3/FD54:	D03D    	BNE $FD93      ; Branch if so

Mode 2: Update tilemap
C3/FD56:	A62D    	LDX $2D        ; Queue index
C3/FD58:	209212  	JSR $1292      ; Pose timer -1
C3/FD5B:	A62D    	LDX $2D        ; Queue index
C3/FD5D:	E210    	SEP #$10       ; 8-bit X, Y
C3/FD5F:	BDC936  	LDA $36C9,X    ; Pose index
C3/FD62:	A8      	TAY            ; Index it
C3/FD63:	C220    	REP #$20       ; 16-bit A
C3/FD65:	B7EB    	LDA [$EB],Y    ; Pose info loc
C3/FD67:	85E7    	STA $E7        ; Set src LBs
C3/FD69:	C8      	INY            ; ...
C3/FD6A:	C8      	INY            ; ...
C3/FD6B:	E220    	SEP #$20       ; 8-bit A
C3/FD6D:	BDCA35  	LDA $35CA,X    ; Anim ptr HB
C3/FD70:	85E9    	STA $E9        ; Set src HB
C3/FD72:	C210    	REP #$10       ; 16-bit X, Y
C3/FD74:	A400    	LDY $00        ; Src index: 0
C3/FD76:	C220    	REP #$20       ; 16-bit A
C3/FD78:	B7E7    	LDA [$E7],Y    ; Column count
C3/FD7A:	85E0    	STA $E0        ; Set width
C3/FD7C:	C8      	INY            ; Src index +1
C3/FD7D:	C8      	INY            ; Src index +1
C3/FD7E:	B7E7    	LDA [$E7],Y    ; Row count
C3/FD80:	85E2    	STA $E2        ; Set height
C3/FD82:	C8      	INY            ; Src index +1
C3/FD83:	C8      	INY            ; Src index +1
C3/FD84:	B7E7    	LDA [$E7],Y    ; Source LBs
C3/FD86:	AA      	TAX            ; Put in X
C3/FD87:	C8      	INY            ; Src index +1
C3/FD88:	C8      	INY            ; Src index +1
C3/FD89:	B7E7    	LDA [$E7],Y    ; Dest LBs
C3/FD8B:	A8      	TAY            ; Put in Y
C3/FD8C:	E220    	SEP #$20       ; 8-bit A
C3/FD8E:	2007FD  	JSR $FD07      ; Replace tiles
C3/FD91:	38      	SEC            ; Set to requeue
C3/FD92:	60      	RTS

Fork: Set to stop animation
C3/FD93:	6499    	STZ $99        ; ...
C3/FD95:	A62D    	LDX $2D        ; Queue index
C3/FD97:	FE4936  	INC $3649,X    ; Mode +1
C3/FD9A:	C220    	REP #$20       ; 16-bit A
C3/FD9C:	A9448B  	LDA #$8B44     ; Anim table ptr
C3/FD9F:	9DC932  	STA $32C9,X    ; Set book's
C3/FDA2:	E220    	SEP #$20       ; 8-bit A
C3/FDA4:	A9C2    	LDA #$C2       ; Bank: C2
C3/FDA6:	9DCA35  	STA $35CA,X    ; Set ptr HB
C3/FDA9:	207112  	JSR $1271      ; Set pose timer
C3/FDAC:	80A8    	BRA $FD56      ; Replace tiles

Unpack and upload large font graphics for actor scene
C3/FDAE:	A000B5  	LDY #$B500     ; Source LBs
C3/FDB1:	A9CE    	LDA #$CE       ; Source HB
C3/FDB3:	20B1EC  	JSR $ECB1      ; Unpack GFX
C3/FDB6:	A000C0  	LDY #$C000     ; 7E/C000
C3/FDB9:	84E7    	STY $E7        ; Set src LBs
C3/FDBB:	A97E    	LDA #$7E       ; Bank: 7E
C3/FDBD:	85E9    	STA $E9        ; Set src HB
C3/FDBF:	A00009  	LDY #$0900     ; Bytes: 2304
C3/FDC2:	84EB    	STY $EB        ; Set data size
C3/FDC4:	A00070  	LDY #$7000     ; VRAM pointer
C3/FDC7:	4CD6EC  	JMP $ECD6      ; Upload GFX

Unpack and upload BG graphics and tilemaps for actor scene
C3/FDCA:	A008BB  	LDY #$BB08     ; Source LBs
C3/FDCD:	A9CE    	LDA #$CE       ; Source HB
C3/FDCF:	20B1EC  	JSR $ECB1      ; Unpack data

Fork: Copy table's map to BG1 tilemap A
C3/FDD2:	A04938  	LDY #$3849     ; BG1 map A
C3/FDD5:	84EB    	STY $EB        ; Set dst LBs
C3/FDD7:	A97E    	LDA #$7E       ; Bank: 7E
C3/FDD9:	85ED    	STA $ED        ; Set dst HB
C3/FDDB:	204AFE  	JSR $FE4A      ; Move data

Fork: Copy table's map to BG1 tilemap B
C3/FDDE:	A04940  	LDY #$4049     ; BG1 map B
C3/FDE1:	84EB    	STY $EB        ; Set dst LBs
C3/FDE3:	A97E    	LDA #$7E       ; Bank: 7E
C3/FDE5:	85ED    	STA $ED        ; Set dst HB
C3/FDE7:	204AFE  	JSR $FE4A      ; Move data

Fork: Upload tall items and table side graphics
C3/FDEA:	A000C0  	LDY #$C000     ; 7E/C000
C3/FDED:	84E7    	STY $E7        ; Set src LBs
C3/FDEF:	A97E    	LDA #$7E       ; Bank: 7E
C3/FDF1:	85E9    	STA $E9        ; Set src HB
C3/FDF3:	A0601F  	LDY #$1F60     ; Bytes: 8032
C3/FDF6:	84EB    	STY $EB        ; Set data size
C3/FDF8:	64ED    	STZ $ED        ; Attrib LB: 0
C3/FDFA:	64EE    	STZ $EE        ; Attrib HB: 0
C3/FDFC:	A00030  	LDY #$3000     ; VRAM pointer
C3/FDFF:	2009ED  	JSR $ED09      ; Upload data

Fork: Upload large items, tabletop, and overlay graphics
C3/FE02:	A060DF  	LDY #$DF60     ; 7E/DF60
C3/FE05:	84E7    	STY $E7        ; Set src LBs
C3/FE07:	A97E    	LDA #$7E       ; Bank: 7E
C3/FE09:	85E9    	STA $E9        ; Set src HB
C3/FE0B:	A0400B  	LDY #$0B40     ; Bytes: 2880
C3/FE0E:	84EB    	STY $EB        ; Set data size
C3/FE10:	64ED    	STZ $ED        ; Attrib LB: 0
C3/FE12:	64EE    	STZ $EE        ; Attrib HB: 0
C3/FE14:	A00040  	LDY #$4000     ; VRAM pointer
C3/FE17:	2009ED  	JSR $ED09      ; Upload data

Fork: Upload book graphics
C3/FE1A:	A0A0EA  	LDY #$EAA0     ; 7E/EAA0
C3/FE1D:	84E7    	STY $E7        ; Set src LBs
C3/FE1F:	A97E    	LDA #$7E       ; Bank: 7E
C3/FE21:	85E9    	STA $E9        ; Set src HB
C3/FE23:	A0000E  	LDY #$0E00     ; Bytes: 3584
C3/FE26:	84EB    	STY $EB        ; Set data size
C3/FE28:	64ED    	STZ $ED        ; Attrib LB: 0
C3/FE2A:	64EE    	STZ $EE        ; Attrib HB: 0
C3/FE2C:	A00050  	LDY #$5000     ; VRAM pointer
C3/FE2F:	2009ED  	JSR $ED09      ; Upload data

Fork: Upload transparent overlay tilemap (BG2)
C3/FE32:	A04804  	LDY #$0448     ; 7F/0448
C3/FE35:	84E7    	STY $E7        ; Set src LBs
C3/FE37:	A97F    	LDA #$7F       ; Bank: 7F
C3/FE39:	85E9    	STA $E9        ; Set src HB
C3/FE3B:	A08007  	LDY #$0780     ; Bytes: 1920
C3/FE3E:	84EB    	STY $EB        ; Set data size
C3/FE40:	64ED    	STZ $ED        ; Attrib LB: 0
C3/FE42:	64EE    	STZ $EE        ; Attrib HB: 0
C3/FE44:	A00010  	LDY #$1000     ; VRAM pointer
C3/FE47:	4C09ED  	JMP $ED09      ; Upload data

Relocate decompressed tilemap for table
C3/FE4A:	A0A0F8  	LDY #$F8A0     ; 7E/F8A0
C3/FE4D:	84E7    	STY $E7        ; Set src LBs
C3/FE4F:	A97E    	LDA #$7E       ; Bank: 7E
C3/FE51:	85E9    	STA $E9        ; Set src HB
C3/FE53:	A08007  	LDY #$0780     ; Bytes: 1920
C3/FE56:	84EF    	STY $EF        ; Set data size
C3/FE58:	4C53E6  	JMP $E653      ; Move data

Set to upload BG1 and BG3 tilemaps for actor scene
C3/FE5B:	A00018  	LDY #$1800     ; $1800
C3/FE5E:	841B    	STY $1B        ; Set VRAM ptr
C3/FE60:	A04978  	LDY #$7849     ; 7E/7849
C3/FE63:	841D    	STY $1D        ; Set src LBs
C3/FE65:	A97E    	LDA #$7E       ; Bank: 7E
C3/FE67:	851F    	STA $1F        ; Set src HB
C3/FE69:	A00008  	LDY #$0800     ; Bytes: 2048
C3/FE6C:	8419    	STY $19        ; Set data size
C3/FE6E:	A00000  	LDY #$0000     ; $0000
C3/FE71:	8414    	STY $14        ; Set VRAM ptr
C3/FE73:	A04938  	LDY #$3849     ; 7E/3849
C3/FE76:	8416    	STY $16        ; Set src LBs
C3/FE78:	A97E    	LDA #$7E       ; Bank: 7E
C3/FE7A:	8518    	STA $18        ; Set src HB
C3/FE7C:	A00010  	LDY #$1000     ; Bytes: 4096
C3/FE7F:	8412    	STY $12        ; Set data size
C3/FE81:	60      	RTS

Unpack and upload apple and shuriken graphics
C3/FE82:	A077EF  	LDY #$EF77     ; Source LBs
C3/FE85:	A9CE    	LDA #$CE       ; Source HB
C3/FE87:	20B1EC  	JSR $ECB1      ; Unpack GFX
C3/FE8A:	A000C0  	LDY #$C000     ; 7E/C000
C3/FE8D:	84E7    	STY $E7        ; Set src LBs
C3/FE8F:	A97E    	LDA #$7E       ; Bank: 7E
C3/FE91:	85E9    	STA $E9        ; Set src HB
C3/FE93:	A08003  	LDY #$0380     ; Bytes: 896
C3/FE96:	84EB    	STY $EB        ; Set data size
C3/FE98:	64ED    	STZ $ED        ; Attrib LB: 0
C3/FE9A:	64EE    	STZ $EE        ; Attrib HB: 0
C3/FE9C:	A00060  	LDY #$6000     ; VRAM pointer
C3/FE9F:	4C09ED  	JMP $ED09      ; Upload GFX

Draw Cyan's katana; unpack and upload glint
C3/FEA2:	2070FF  	JSR $FF70      ; Handle glint
C3/FEA5:	A02600  	LDY #$0026     ; Tiles: 19
C3/FEA8:	84E0    	STY $E0        ; Set width
C3/FEAA:	A00200  	LDY #$0002     ; Tiles: 2
C3/FEAD:	84E2    	STY $E2        ; Set height
C3/FEAF:	A2E003  	LDX #$03E0     ; Src: 7F/03E0
C3/FEB2:	A0A13B  	LDY #$3BA1     ; Dst: 7E/3BA1
C3/FEB5:	4C07FD  	JMP $FD07      ; Draw katana

Unpack and upload coin graphics
C3/FEB8:	20C1FE  	JSR $FEC1      ; Unpack data
C3/FEBB:	A00060  	LDY #$6000     ; VRAM pointer
C3/FEBE:	4C09ED  	JMP $ED09      ; Upload data

Unpack skull and coin graphics; prepare upload
C3/FEC1:	A04B9D  	LDY #$9D4B     ; Source LBs
C3/FEC4:	A9D9    	LDA #$D9       ; Source HB
C3/FEC6:	20B1EC  	JSR $ECB1      ; Unpack GFX
C3/FEC9:	A000C0  	LDY #$C000     ; 7E/C000
C3/FECC:	84E7    	STY $E7        ; Set src LBs
C3/FECE:	A97E    	LDA #$7E       ; Bank: 7E
C3/FED0:	85E9    	STA $E9        ; Set src HB
C3/FED2:	A00008  	LDY #$0800     ; Bytes: 896
C3/FED5:	84EB    	STY $EB        ; Set data size
C3/FED7:	64ED    	STZ $ED        ; Attrib LB: 0
C3/FED9:	64EE    	STZ $EE        ; Attrib HB: 0
C3/FEDB:	60      	RTS

Draw Mog's tree; unpack and upload sprites
C3/FEDC:	2070FF  	JSR $FF70      ; Do sprites
C3/FEDF:	A00E00  	LDY #$000E     ; Tiles: 7
C3/FEE2:	84E0    	STY $E0        ; Set width
C3/FEE4:	A00800  	LDY #$0008     ; Tiles: 8
C3/FEE7:	84E2    	STY $E2        ; Set height
C3/FEE9:	A22000  	LDX #$0020     ; Src: 7F/0020
C3/FEEC:	A0773A  	LDY #$3A77     ; Dst: 7E/3A77
C3/FEEF:	4C07FD  	JMP $FD07      ; Draw tree

Draw Gogo's helmet; unpack and upload glint
C3/FEF2:	2070FF  	JSR $FF70      ; Handle glint
C3/FEF5:	A01C00  	LDY #$001C     ; Tiles: 14
C3/FEF8:	84E0    	STY $E0        ; Set width
C3/FEFA:	A00900  	LDY #$0009     ; Tiles: 9
C3/FEFD:	84E2    	STY $E2        ; Set height
C3/FEFF:	A22E00  	LDX #$002E     ; Src: 7F/002E
C3/FF02:	A02D3A  	LDY #$3A2D     ; Dst: 7E/3A2D
C3/FF05:	4C07FD  	JMP $FD07      ; Draw helmet

Draw Gau's diving helmet; unpack and upload face
C3/FF08:	2090FF  	JSR $FF90      ; Handle face
C3/FF0B:	A00C00  	LDY #$000C     ; Tiles: 6
C3/FF0E:	84E0    	STY $E0        ; Set width
C3/FF10:	A00700  	LDY #$0007     ; Tiles: 7
C3/FF13:	84E2    	STY $E2        ; Set height
C3/FF15:	A24A00  	LDX #$004A     ; Src: 7F/004A
C3/FF18:	A0B73A  	LDY #$3AB7     ; Dst: 7E/3AB7
C3/FF1B:	4C07FD  	JMP $FD07      ; Draw helmet

Draw Terra's cocktail glasses; unpack and upload glint
C3/FF1E:	2070FF  	JSR $FF70      ; Handle glint
C3/FF21:	A00E00  	LDY #$000E     ; Tiles: 7
C3/FF24:	84E0    	STY $E0        ; Set width
C3/FF26:	A00500  	LDY #$0005     ; Tiles: 5
C3/FF29:	84E2    	STY $E2        ; Set height
C3/FF2B:	A22002  	LDX #$0220     ; Src: 7F/0220
C3/FF2E:	A0353B  	LDY #$3B35     ; Dst: 7E/3B35
C3/FF31:	4C07FD  	JMP $FD07      ; Draw glasses

Draw Locke and Celes's bouquet
C3/FF34:	A01800  	LDY #$0018     ; Tiles: 12
C3/FF37:	84E0    	STY $E0        ; Set width
C3/FF39:	A00600  	LDY #$0006     ; Tiles: 6
C3/FF3C:	84E2    	STY $E2        ; Set height
C3/FF3E:	A27402  	LDX #$0274     ; Src: 7F/0274
C3/FF41:	A0693B  	LDY #$3B69     ; Dst: 7E/3B69
C3/FF44:	4C07FD  	JMP $FD07      ; Replace tiles

Draw Relm's brush; unpack and upload glint
C3/FF47:	2070FF  	JSR $FF70      ; Handle glint
C3/FF4A:	A01400  	LDY #$0014     ; Tiles: 10
C3/FF4D:	84E0    	STY $E0        ; Set width
C3/FF4F:	A00200  	LDY #$0002     ; Tiles: 2
C3/FF52:	84E2    	STY $E2        ; Set height
C3/FF54:	A26003  	LDX #$0360     ; Src: 7F/0360
C3/FF57:	A0F33B  	LDY #$3BF3     ; Dst: 7E/3BF3
C3/FF5A:	4C07FD  	JMP $FD07      ; Draw brush

Draw an open book
C3/FF5D:	A01C00  	LDY #$001C     ; Tiles: 14
C3/FF60:	84E0    	STY $E0        ; Set width
C3/FF62:	A00600  	LDY #$0006     ; Tiles: 6
C3/FF65:	84E2    	STY $E2        ; Set height
C3/FF67:	A2C80B  	LDX #$0BC8     ; Src: 7F/0BC8
C3/FF6A:	A0D93A  	LDY #$3AD9     ; Dst: 7E/3AD9
C3/FF6D:	4C07FD  	JMP $FD07      ; Replace tiles

Unpack and upload card, glint, moogle, and winding key graphics
C3/FF70:	A0FBF1  	LDY #$F1FB     ; Source LBs
C3/FF73:	A9CE    	LDA #$CE       ; Source HB
C3/FF75:	20B1EC  	JSR $ECB1      ; Unpack GFX
C3/FF78:	A000C0  	LDY #$C000     ; 7E/C000
C3/FF7B:	84E7    	STY $E7        ; Set src LBs
C3/FF7D:	A97E    	LDA #$7E       ; Bank: 7E
C3/FF7F:	85E9    	STA $E9        ; Set src HB
C3/FF81:	A0F00D  	LDY #$0DF0     ; Bytes: 3568
C3/FF84:	84EB    	STY $EB        ; Set data size
C3/FF86:	64ED    	STZ $ED        ; Attrib LB: 0
C3/FF88:	64EE    	STZ $EE        ; Attrib HB: 0
C3/FF8A:	A00060  	LDY #$6000     ; VRAM pointer
C3/FF8D:	4C09ED  	JMP $ED09      ; Upload GFX

Unpack and upload face graphics for Gau's scene
C3/FF90:	A0E5A4  	LDY #$A4E5     ; Source LBs
C3/FF93:	A9D9    	LDA #$D9       ; Source HB
C3/FF95:	20B1EC  	JSR $ECB1      ; Unpack GFX
C3/FF98:	A000C0  	LDY #$C000     ; 7E/C000
C3/FF9B:	84E7    	STY $E7        ; Set src LBs
C3/FF9D:	A97E    	LDA #$7E       ; Bank: 7E
C3/FF9F:	85E9    	STA $E9        ; Set src HB
C3/FFA1:	A0C000  	LDY #$00C0     ; Bytes: 192
C3/FFA4:	84EB    	STY $EB        ; Set data size
C3/FFA6:	A00060  	LDY #$6000     ; VRAM pointer
C3/FFA9:	4CD6EC  	JMP $ECD6      ; Upload GFX

Draw Umaro's bones; unpack and upload sprites
C3/FFAC:	2070FF  	JSR $FF70      ; Handle moogles
C3/FFAF:	20C1FE  	JSR $FEC1      ; Unpack skull
C3/FFB2:	A00068  	LDY #$6800     ; VRAM pointer
C3/FFB5:	2009ED  	JSR $ED09      ; Upload skull
C3/FFB8:	A00A00  	LDY #$000A     ; Tiles: 5
C3/FFBB:	84E0    	STY $E0        ; Set width
C3/FFBD:	A00500  	LDY #$0005     ; Tiles: 5
C3/FFC0:	84E2    	STY $E2        ; Set height
C3/FFC2:	A25600  	LDX #$0056     ; Src: 7F/0056
C3/FFC5:	A0373B  	LDY #$3B37     ; Dst: 7E/3B37
C3/FFC8:	4C07FD  	JMP $FD07      ; Draw bones

Old version of C3/FF90 (partially deleted)
C3/FFCB:	E9      	               ; [STA] $E9
C3/FFCC:	A0C000  	LDY #$00C0     ; Bytes: 192
C3/FFCF:	84EB    	STY $EB        ; Set data size
C3/FFD1:	A00060  	LDY #$6000     ; VRAM pointer
C3/FFD4:	4C01ED  	JMP $ED01      ; Upload GFX

Old version of C3/FFAC
C3/FFD7:	209BFF  	JSR $FF9B      ; Handle moogles
C3/FFDA:	20ECFE  	JSR $FEEC      ; Unpack skull
C3/FFDD:	A00068  	LDY #$6800     ; VRAM pointer
C3/FFE0:	2034ED  	JSR $ED34      ; Upload skull
C3/FFE3:	A00A00  	LDY #$000A     ; Tiles: 5
C3/FFE6:	84E0    	STY $E0        ; Set width
C3/FFE8:	A00500  	LDY #$0005     ; Tiles: 5
C3/FFEB:	84E2    	STY $E2        ; Set height
C3/FFED:	A25600  	LDX #$0056     ; Src: 7F/0056
C3/FFF0:	A0373B  	LDY #$3B37     ; Dst: 7E/3B37
C3/FFF3:	4C32FD  	JMP $FD32      ; Draw bones

Free space
C3/FFF6:	F6F7F8F9FAFBFCFDFEFF
